要清楚,这不是一个错误,这是一个我无意中破坏的项目,我不知道何时或如何,并需要帮助排除故障。
在我的项目中运行ng --version
:
Angular CLI: 7.3.4
Node: 10.14.1
OS: darwin x64
Angular: 7.2.7
运行ng serve
时,应用程序在浏览器中加载OK:
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
,但我无法确定这个问题何时开始。我也可能在我的代码中无意中破坏了导航。
知道在哪里或如何开始故障排除?
您可以看到runtime.js
正在从子路径加载
http://localhost:4200/page/sub/path/runtime.js
它看起来像是相对基数href的问题,尝试将其更改为绝对值
<base href="/">