Angular 4 ng 构建 base-href 重复子目录
Posted
技术标签:
【中文标题】Angular 4 ng 构建 base-href 重复子目录【英文标题】:Angular 4 ng build base-href duplicate subdirectory 【发布时间】: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 目录有什么提示吗?这是一个错误还是我做错了什么?
【问题讨论】:
【参考方案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 "."
这似乎对我有用
【讨论】:
以上是关于Angular 4 ng 构建 base-href 重复子目录的主要内容,如果未能解决你的问题,请参考以下文章
Angular 8 ng-build 使用科尔多瓦抛出 MIME 错误