当前位置: 首页 > 面试题库 >

Angularjs TemplateUrl路由出现404错误

丁宏浚
2023-03-14
问题内容

我正在按照本教程进行操作,试图在我的MVC3应用程序中包含一个SPA,该SPA由控制器DemoController.cs调用。

当应用尝试通过导航栏加载不同的模板(about.html,contact.html和home.html)时,出现404错误。

这是我的目录结构(不包括MVC3应用程序的其余部分):

Scripts
-script.js 
Views
-Demo
--pages
---about.html
---contact.html
---home.html
--Index.cshtml
--_ViewStart.cshtml

这是我的script.js文件,我在其中定义路由。

// create the module and name it scotchApp
var scotchApp = angular.module('scotchApp', []);

// configure our routes
scotchApp.config(function ($routeProvider) {
$routeProvider

    // route for the home page
    .when('/', {
        templateUrl: 'pages/home.html',
        controller: 'mainController'
    })

    // route for the about page
    .when('/about', {
        templateUrl: 'pages/about.html',
        controller: 'aboutController'
    })

    // route for the contact page
    .when('/contact', {
        templateUrl: 'pages/contact.html',
        controller: 'contactController'
    });
});

// create the controller and inject Angular's $scope
scotchApp.controller('mainController', function ($scope) {
    // create a message to display in our view
    $scope.message = 'Everyone come and see how good I look!';
});

scotchApp.controller('aboutController', function ($scope) {
    $scope.message = 'Look! I am an about page.';
});

scotchApp.controller('contactController', function ($scope) {
    $scope.message = 'Contact us! JK. This is just a demo.';
});

这是我的index.html代码:

    <div ng-app="scotchApp">
    <!-- HEADER AND NAVBAR -->
    <div ng-controller="mainController">
        <nav class="navbar navbar-default">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand" href="/">Angular Routing Example</a>
                </div>

                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#"><i class="fa fa-home"></i>Home</a></li>
                    <li><a href="#about"><i class="fa fa-shield"></i>About</a></li>
                    <li><a href="#contact"><i class="fa fa-comment"></i>Contact</a></li>
                </ul>
            </div>
        </nav>

        <!-- MAIN CONTENT AND INJECTED VIEWS -->
        <div id="main">
            <!-- angular templating -->
            <!-- this is where content will be injected -->
            <div ng-view></div>
        </div>
    </div>
</div>

问题答案:

在Google Group forAngularJS的帮助下,我强烈建议所有需要angularjs帮助的人,我现在知道问题出在哪里,以及如何更好地解决此类问题。

这是我从其成员之一那里获得的提示:

我无法说出您所遇到的具体问题是什么,但是一般来说,解决问题的方法是检查以下内容:

服务器是否配置为将模板作为静态html返回?通过手动构造一个url并直接用浏览器加载它(根本不涉及角度)来验证这一点。您应该能够看到静态html。这是其他所有工作的前提条件。如果这不起作用,则说明问题是正确配置.NET和服务器端路由。

如果您可以迈出第一步,那么请启动您的Angular应用并打开浏览器开发工具的“网络”标签。如果看到404请求,请记下URL。与您上面使用的有效网址有什么不同?

如果URL不同,请相应地修改templateUrl参数,使其与正确的URL匹配。如果仍然有问题,请张贴一个工作URL的示例以及浏览器在获取404时请求的URL的示例。

结合以下事实,即我无法使用静态网址提取模板,我发现了另一个直接解决此问题的SO问题。 如何在ASP.NET MVC的〜/Views文件夹下请求静态.html文件?
回答我的问题:
因此,我创建了一个〜/Static文件夹来容纳我的所有模板,现在我的angular应用程序可以完美运行,因为当我请求模板时,我可以给它一个直接的URL来获取它。



 类似资料:
  • 我在我的本地主机上开发了一个laravel应用程序,运行非常好。我正试图使用Ubuntu 20.04上的nginx将其部署到AWS Lightsail实例上。我已经上传了我的laravel应用程序,并将nginx根目录更改为laravelapp/public。 主索引页(着陆页)工作正常,但我的路线都不工作(即 /login, /about等)。当我试图访问任何路线时,我得到一个404未找到错误。

  • 我尝试将Codeigniter与AngularJS路由一起使用,它正在工作,但我需要不使用散列。我使用以下代码: 但当我刷新页面时,跳转到404。

  • 你好,我被这个错误卡住了。我总是得到404错误,所有的stackoverflow主题没有帮助。

  • 我正在建立一个注册页,当我提交时,我得到一个404没有找到。我正在使用react和express,我认为前端是好的。我缺少了一些后端,或者我的post请求的url错误:AXIOS.post('http://localhost:3000/auth'。如果有人能看到我的错误之处,我将不胜感激。 这是我的路由的registerPost函数。 这些是路线。

  • 问题内容: 我有一个带有服务的应用程序,该服务包装了我的API调用: 并且我正在使用UI-Router在状态之间进行转换: 我不再使用普通的AngularJS路由器,并且难以理解如何实现404。我可以看到抛出状态被拒绝,但是如何在状态路由器中捕获它呢? 问题答案: 仅当没有其他 路由 匹配时才调用该规则。您真正想要的是拦截事件,即在状态转换中出现问题(例如,解析失败)时触发的事件。您可以在状态更改

  • 我正在学习Spring Boot,但我无法执行基本的“Hello World”程序。我已经使用https://start.spring.io/构建了基本项目,并按照以下代码片段更新了代码: Spring靴主类: 控制器类: POM. xml文件: 错误: 我知道这个问题已经被很多人问过了,但我已经仔细阅读了这些答案,并尝试了那些给出的答案,但没有成功。 使用的技术有Java 8、Tomcat 9、