我今天尝试编译一个Angular4的应用,并部署到服务器的一个路径上去,由于不是根路径因此我使用了下面的语句:

1
ng build -prod -bh /rel

自然的Angular应用index.html里的语句就变成了:

1
<base href="/rel">

但,当我用http://localhost:8080/rel打开网页时却提示Loading...,打开调试发现js路径没找到,base标签没有生效,上网自学一番收获如下:

https://stackoverflow.com/questions/11521011/why-base-tag-does-not-work-for-relative-paths

总结得票最高的:

  1. base配合相对路径使用,不要在路径前使用/,这不是相对路径,这是相对于Root的绝对路径;
  2. href后面跟反斜杠/,表明这是一个目录

我上面的问题即在/rel后面加反斜杠完成。