我想将sub.example.com指向example.com/sub(实际上没有重定向)。我通过以下nginx配置实现了这一点:
server {
listen 80;
server_name ~^(.*)\.example\.com$ ;
root /var/www/html/example.com/public_html/sub;
}
问题是,我在sub.example.com上有一个Angular应用程序,它尝试从以下路径加载其 js 资源,但未能这样做(404 Not found):
http://sub.example.com/sub/inline.bundle.js
http://sub.example.com/sub/vendor.bundle.js
...
要进行构建我正在使用以下命令:
ng build --base-href /sub/
如何解决这个问题?这是Angular问题还是我可以用nginx配置修复它?我尝试过proxy_pass但没有成功。
答案 0 :(得分:3)
如果您的应用未从根位置投放,则仅需要为路由器指定base-href,例如http://example.com/sub
在您的情况下,您添加了nginx规则,以便可以从子文件夹提供内容,但使用“根”位置(http://sub.example.com)
所以从角度来看,一切都像是从根文件夹中提供的,这意味着没有必要指定base-href
答案 1 :(得分:0)
当我实现需要从每种语言的不同子目录提供的Angular应用程序的国际化时,我遇到了这个问题。检查my solution on the topic。