我正在开发一个 Angular 应用程序,我面临着设置 HTML 基本 href 值和/或 APP_BASE_HREF 值的问题。
它们之间有什么区别和联系?
最佳答案
一般来说,你只需要设置 <base href>
.
异常(exception)情况是您无权访问 index.html
或者您希望 HTML5 样式的 URL 与您提供 Angular 文件的位置不同(那么您需要提供 APP_BASE_HREF
)。
What is the difference and relation between these?
<base href>
在为您的 Web 应用程序生成 HTML5 样式的 URL 时用作默认基本 URL ( see source code )。此外,它 "specifies a base path for resolving relative URLs to assets such as images, scripts, and style sheets,"即您的 Angular 分布。自 <base href>
只是一个HTML元素,你可以看到Mozilla docs有关详细信息,请参阅 community wiki的影响。
如果由于某种原因你属于以上两种情况,你可以提供APP_BASE_HREF
相反,它仅用于路由目的(使用 PathLocationStrategy
)并且不设置或与 <base href>
交互.
总结
-
<base href>
在APP_BASE_HREF
时用作路由的基本 URL未设置。 - 设置
<base href>
的组合和APP_BASE_HREF
可用于显示的 URL 和提供文件的实际位置不同的部署场景。 - 如果你是don't have access to the
index.html
, theAPP_BASE_HREF
must be set如果使用PathLocationStrategy
.
进一步阅读
关于javascript - HTML base href 和 Angular APP_BASE_HREF 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69094451/