本文介绍了角度CLI服务-服务路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正尝试使用--service-path为该路径下的整个应用程序提供服务。例如,我希望我的路径是localhost:4200/foobar
,我使用ng serve --serve-path=/foobar/
。然后,当我转到该URL时,我的应用程序未加载,并且出现空白屏幕。
推荐答案
除--serve-path
选项外,还需要指定--base-href
或--deploy-url
选项,否则您的资产将具有无效的源URI。如果没有它们,您的index.html
文件包含类似
<head>
<base href="/">
...
</head>
<body>
...
<script src="vendor.js" defer></script>
<script src="main.js" defer></script>
</body>
您可以看到,所有资产都有不正确的/vendor.js
、/main.js
等URI,而不是正确的URI/foobar/vendor.js
、/foobar/main.js
等。
ng serve --serve-path=/foobar/ --base-href=/foobar/
,index.html
将如下所示
<head>
<base href="/foobar/">
...
</head>
<body>
...
<script src="vendor.js" defer></script>
<script src="main.js" defer></script>
</body>
如果您使用ng serve --serve-path=/foobar/ --deploy-url=/foobar/
,index.html
将与
<head>
<base href="/">
...
</head>
<body>
...
<script src="/foobar/vendor.js" defer></script>
<script src="/foobar/main.js" defer></script>
</body>
这两个选项在现代的角度版本中都被认为是deprecated(但仍然使用当前的角度CLI 12),建议改用angular.json
配置文件中的builder配置选项:
...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"baseHref": "/foobar/",
...
角度文档显示使用baseHref
通常比使用deployUrl
更好。
这篇关于角度CLI服务-服务路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论