【问题标题】:Error 404 when serving files in angularjs and node app在 angularjs 和节点应用程序中提供文件时出现错误 404
【发布时间】:2018-01-24 23:14:08
【问题描述】:

我有

<base href="/!#/">

在我的 index.html 文件的顶部。当我转到 URL http://localhost:5000/ 一切正常时,它会立即添加 #!/,因此 URL 是 http://localhost:5000/#!/ 并且页面显示如预期。

在服务器端,我有以下代码应该允许我使用我的文件

app.use(express.static(path.join(__dirname, 'public')));

我的文件结构类似于:

bookApp(folder)
  server.js
  public(folder)
    index.html
    app.js(ngRoute)
    views(folder)
    css(folder)
    controllers(folder)

而我的 AngularJS 路由是:

(function () {
'use strict';

angular
    .module('app', [
        'ngRoute'
    ])
    .config(config);

function config ($routeProvider) {
    $routeProvider
        .when('/', {
            controller: 'PostsCtrl',
            templateUrl: 'views/posts.html'
        })
        .when('/register', {
            controller: 'registerCtrl',
            templateUrl: 'views/register.html'
        })
        .when('/login', {
            controller: 'loginCtrl',
            templateUrl: 'views/login.html'
        })
        .otherwise('/');
}
})();

第一页 (views/posts.html) 按预期加载,但是当我点击时

<li><a href="/login" title="Login to bookApp">Sign in</a></li>

网址是http://localhost:5000/login,不像我想象的http://localhost:5000/!#/login

然后显示:

无法获取/登录

当我手动将 URL 更改为 http://localhost:5000/#!/login 时,它工作正常。

如何解决此问题?

我看到的唯一解决方案是去掉 &lt;base&gt; 标记,并在每个链接中手动在 href 指令中添加 !# 在斜杠之前。

【问题讨论】:

    标签: angularjs node.js routing ngroute


    【解决方案1】:

    您似乎忘记了 ng-view 指令:&lt;div ng-view&gt;&lt;/div&gt;,它是您的路由提供的内容的容器。如果您将所有内容都包含在一个文件中,请将其放在脚本上方。

    你也可以试试:

    <ng-view></ng-view>
    <div class="ng-view"></div>
    

    您仍在使用 Angular 1 有什么特别的原因吗?我知道这在技术上并不能回答您的问题,但我强烈建议您开始使用最新的 Angular。你仍然可以保留遗留代码,但它会让你所做的很多事情变得更加清晰和清晰。

    【讨论】:

    • 这根本不是我的问题,我一直在使用ng-view。我不知道为什么我确实遇到了这样的问题,但我只是将我的 href 指令编辑成一个带有 #/ 前缀的指令。我使用 angularJS 是因为它很好,我非常了解它,而且它适用于像我现在正在开发的这种具有多个 DOM 干扰的大型应用程序。
    猜你喜欢
    • 2021-09-23
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 2015-01-03
    • 2015-02-28
    • 2012-11-16
    相关资源
    最近更新 更多