Angular 在使用自定义 HTML5 基本 URL 时为 *.bundle.js 文件抛出 404



症状

将我的 Angular2 应用程序升级到 Angular^4.1.2并将 Angular CLI 测试版升级到^1.0.3后,在使用ng serve运行应用程序时,我的 *.bundle.js 文件找不到 404。请注意,此症状在 Angular2 和 Angular CLI beta 中没有出现。

设置

仅当我在index.html中将 html5 基本网址设置为自定义网址时,此问题才存在,例如<base href="/some-path/">.(即,如果我将其设置为<base href="/">,则找到*.bundle.js文件并且我的应用程序可以正常工作)

调查

在所述情况下会出现此症状,因为无论 html5 基本 url 是什么,文件都由角度 cli 在根级别提供。所以真正的问题是:我如何告诉 Angular CLI 在指定的基本 url 上提供 *.bundle.js 文件,或者告诉 angular 在根目录上选取文件?我发现了一个问题请求,似乎完全可以解决这个问题。因此,有一个选项--base-href用于ng serveng build命令。

我尝试将这些选项单独使用,也可以组合使用:

  • ng serve --base-href /assessment/
  • ng serve --base-href /assessment/ --deploy-url /assessment/

但是,症状仍然存在。

我遇到了同样的问题,并在StackOverflow和Github上寻找了一段时间,我找到了适合我的解决方案。

试试这个:$ng serve --base-href '/assessment/' --deploy-url '/'它适用于我的项目。

这对我有用:

不要
  • index.html上添加自定义路由,不要在/上本地开发
  • 使用ng build --base-href /assessment/构建 Angular 应用。这将在 dist 文件中创建路由,从而在 prod 中工作。

最新更新