gpt4 book ai didi

angular-cli - Angular CLI - ng serve --serve-path

转载 作者:行者123 更新时间:2023-12-05 01:57:13 27 4
gpt4 key购买 nike

我正在尝试使用 --serve-path 在该路径下为我的整个应用程序提供服务。例如,我希望我的路径是 localhost:4200/foobar 我使用 ng serve --serve-path=/foobar/。然后,当我转到该 URL 时,我的应用程序没有加载,我得到一个空白屏幕。

最佳答案

除了 --serve-path 选项,您还需要指定 --base-href--deploy-url 选项或您的 Assets 将具有无效的源 URI。如果没有它们,您的 index.html 文件将包含类似

的内容
<head>
<base href="/">
...
</head>
<body>
...
<script src="vendor.js" defer></script>
<script src="main.js" defer></script>
</body>

如您所见,所有 Assets 都有不正确的 /vendor.js/main.js 等 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在现代的 Angular 版本中(但是仍然使用当前的 Angular CLI 12),建议使用 angular.json 配置文件中的构建器配置选项来代替:

      ...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"baseHref": "/foobar/",
...

Angular 文档说使用 baseHref通常是比 deployUrl 更好的选择.

关于angular-cli - Angular CLI - ng serve --serve-path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69399480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com