使用 nginx 将子域上的 angular app 指向子文件夹

Point angular app on subdomain to subfolder with nginx

我想将 sub.example.com 指向示例。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 未找到):

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 但没有成功。

仅当您的应用不是从根位置提供服务时,路由器才需要指定 base-href,例如http://example.com/sub

在您的情况下,您添加了 nginx 规则以便可以从子文件夹提供内容,但使用的是 "root" 位置 (http://sub.example.com)

所以从 angular 的角度来看,一切都像是从根文件夹提供的,这意味着不需要指定 base-href

我在实现 Angular 应用程序的国际化时遇到了这个问题,该应用程序需要从每种语言的不同子目录提供服务。检查 .