【问题标题】:Angular 4 ng build base-href duplicate subdirectoryAngular 4 ng 构建 base-href 重复子目录
【发布时间】:2018-03-21 03:17:36
【问题描述】:

我正在根据分支名称将我的 Angular 应用程序构建部署到具有不同子目录的 s3 存储桶中。网址看起来像:

pr.example.com/add-cool-spinner
pr.example.com/increase-awesomeness

如果我使用--base-href /add-cool-spinner 进行部署,它会正确更新基本标签:<base href="add-cool-spinner">。但是,当重定向或生成链接时,子目录会加倍,因此从路由器生成的链接标签如下所示:

pr.example.com/add-cool-spinner/add-cool-spinner/page

我尝试只更改 --deploy-url,但它不会更新基本 href 标记,而是引用根 url (pr.example.com/page)。

对于不加倍基本 url 目录有什么提示吗?这是一个错误还是我做错了什么?

【问题讨论】:

    标签: angular web-deployment


    【解决方案1】:

    事实证明,这并没有很好的记录,但是 angular 期望有一个斜杠和斜杠。所以部署:

    ng build --base-href /add-cool-spinner/
    

    它仍然没有正确引用图像标签中的图像,这可能是因为构建器中的已知错误。

    【讨论】:

    • 确实,我们从 --base-href en--base-href en/ 更改为 /en/ 并开始工作。谢谢!我只是想知道为什么在ng build 会发生这种情况。例如。为什么他们不自动更正它或报告为错误/警告。有什么想法吗?
    • Angular 8 仍然需要这样做。
    • 对我不起作用。添加尾部斜杠使 Angular 在本地路径中查找静态文件,例如C:/Documents/styles.scss
    • Angular 11 仍然需要这样做。
    【解决方案2】:

    原来添加斜线前缀可以解决问题 对于大多数终端来说,它只会指向您的本地 bash 根目录 要解决这个问题,只需使用斜杠构建

     ng build --base-href "apppath/"
    

    并在 index.html 的开头添加一个斜线

    <base href="/apppath/">
    

    我不确定如何使用此解决方法自动化构建过程

    更新

    ng build --base-href "."
    

    这似乎对我有用

    【讨论】:

      猜你喜欢
      • 2020-08-09
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2018-02-02
      • 2020-06-28
      • 1970-01-01
      相关资源
      最近更新 更多