使用Electron时,如何配置Angular 2的基本href?

the*_*ang 19 typescript electron angular2-routing angular

我需要<base>在HTML中或APP_BASE_HREF在Angular 2的引导期间设置不抛出异常.如果我设置其中任何一个,那么Electron考虑文件系统,在browser_adapter.ts尝试匹配路由时抛出异常:

EXCEPTION:错误:未捕获(在承诺中):无法匹配任何路由.当前细分:'C:'.可用路线:['/ dashboard','/ accounts'].

我尝试使用这个博客文章中HashLocationStrategy提到,但Angular仍抱怨没有设置基本href.

Abd*_*yer 35

由于该href属性可以采取相对路径,并且感谢@DavidC和@ChristianRondeau在关于验证问题的评论中,它应该像这样工作:

<base href="./">
Run Code Online (Sandbox Code Playgroud)

  • 所以任何人都知道为什么这不是默认值?没有种子使用`./`作为基础href.你什么时候想要一个硬编码的基本路径? (5认同)
  • 当路由直接从地址栏加载时,这在很多情况下不起作用 (3认同)
  • 将基本 href 设置为 `./` 会中断使用直接 url 的路由,使其到达多级深度的路径。例如“http://localhost:4200/foo/bar”。您需要很长时间才能找到答案,因为从应用程序内导航时,这些路径仍然可以正常工作。将此保留为“/”。 (3认同)
  • 这适用于 DOM 路径,但我在 CSS 中设置背景图像。此处找到图像文件路径注释并引发错误,例如 GET file:///icon/png/icon.png net::ERR_FILE_NOT_FOUND (2认同)

ahm*_*l88 5

以干净的方式,您只能自定义构建命令,而无需编辑页面 <base href="/">内的值index.html

ng build --prod --base-href=./
Run Code Online (Sandbox Code Playgroud)