2

需要明确的是,这不是错误,这是我无意中破坏的项目,我不确定何时或如何破坏。

ng --version在我的项目中运行:

Angular CLI: 7.3.4
Node: 10.14.1
OS: darwin x64
Angular: 7.2.7

运行ng serve时,应用程序在浏览器中加载正常:

http://localhost:4200

在根目录手动加载路径时,在以下位置加载 OK:

http://localhost:4200/page

通过应用程序内的链接导航到正在运行的应用程序的子路径from a root path时,在以下位置加载 OK:

http://localhost:4200/page/sub/path

但是,当尝试以下列任何方式加载后续子路径时:

• 刷新浏览器视图中的现有子路径

• 尝试在子路径中手动输入和加载 url

• 查看子路径时由 CLI 触发的实时重新加载

http://localhost:4200/page/sub/path

错误地,应用程序尝试加载js与子路径相关的所有文件,因此失败。该应用程序尝试在runtime.js此处加载:

http://localhost:4200/page/sub/path/runtime.js

什么时候应该在这里加载它:

http://localhost:4200/runtime.js

我的基本href当前设置为./

随着应用程序的运行,我检查了 html 源代码,脚本标签的格式如下:

<script type="text/javascript" src="runtime.js"></script>

我不确定是什么破坏了这个项目。生成一个新项目没有问题。我怀疑可能是最近的npm update,但我不能确定这个问题是什么时候开始的。我也可能在我的代码中无意中破坏了导航。

知道从哪里或如何开始故障排除吗?

4

1 回答 1

1

您可以看到这runtime.js是从子路径加载的

http://localhost:4200/page/sub/path/runtime.js

看起来相对基本href有问题,尝试将其更改为绝对href

<base href="/">

于 2019-03-20T09:58:13.097 回答