如何部署有角度的应用程序,使其在任何路径下均可工作?

xax*_*axa 8 deployment web-deployment angular

这可能是一个新手问题,但是我在这里或角度文档中找不到任何答案。假设我有一个简单的Angular应用程序(例如,angular.io教程中的英雄编辑器),我想在不知道它将在我的Web服务器上运行的路径下进行分发。可能在以下情况下:

换句话说,我需要生成的源(index.html及其与角度相关的js文件)在任何路径下都能正常工作(我想这就是为什么使用相对路径的原因)。将它们放在我的服务器的根目录下,因为

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

npm deploy可能已在index.html中生成...我天真地尝试将其更改为

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

为了使我的浏览器将包含的JS文件的路径解释为相对于index.html的路径。这样,我的浏览器就可以正确找到JS文件,但是angular应用程序不再起作用(空白页...)。
关于这样做的正确“角度”应该有什么想法?谢谢您的帮助!

xax*_*axa 7

找到了一个适合我并且看起来不太难看的解决方案:

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


Ism*_*l H 1

如果您使用的是 Angular CLI,则:

ng build --base-href /dynamic-base-path/
Run Code Online (Sandbox Code Playgroud)

应该做到这一点。