HTML 基本 href 和 A​​ngular APP_BASE_HREF 有什么区别?

mic*_*alo 8 html javascript angular angular-router

我正在开发一个 Angular 应用程序,我面临着设置 HTML 基本 href 值和/或 APP_BASE_HREF 值。

它们之间有什么区别和联系呢?

aho*_*ong 5

一般来说,您只需设置<base href>.

例外情况是,如果您无权访问index.html或您希望 HTML5 样式 URL 与您提供 Angular 文件的位置不同(那么您需要提供 )APP_BASE_HREF

它们之间有什么区别和联系呢?

为您的 Web 应用程序生成 HTML5 样式 URL 时,将其<base href>用作默认基本 URL(请参阅源代码)。此外,它“指定用于解析图像、脚本和样式表等资产的相对 URL 的基本路径”,即您的 Angular 发行版。由于<base href>它只是一个 HTML 元素,因此您可以查看Mozilla 文档以了解详细信息,并查看社区 wiki以了解含义。

如果由于某种原因您陷入上述两种例外情况,您可以提供 代替APP_BASE_HREF,它仅用于路由目的(使用PathLocationStrategy)并且不设置或与 交互<base href>

概括

  1. <base href>APP_BASE_HREF未设置时用作路由的基本 URL 。
  2. <base href>设置和 的组合APP_BASE_HREF可用于显示的 URL 和提供文件的实际位置不同的部署方案。
  3. 如果您无权访问index.html,则APP_BASE_HREF必须在使用 时设置PathLocationStrategy

进一步阅读