角度CLI服务-服务路径 [英] Angular CLI - ng serve --serve-path

查看:24
本文介绍了角度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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆