代码之家  ›  专栏  ›  技术社区  ›  Adam Bardon

使用nginx将子域上的角度应用程序指向子文件夹

  •  1
  • Adam Bardon  · 技术社区  · 8 年前

    我想举个例子。com到示例。com/sub(无实际重定向)。我通过以下nginx配置实现了这一点:

    server {
        listen 80;
        server_name ~^(.*)\.example\.com$ ;
        root /var/www/html/example.com/public_html/sub;
    }
    

    问题是,我在sub.example上有一个Angular应用程序。com并尝试加载其 js公司 来自以下路径的资源,但未能执行此操作(404未找到):

    http://sub.example.com/sub/inline.bundle.js
    http://sub.example.com/sub/vendor.bundle.js
    ...
    

    要进行构建,我使用以下命令:

    ng build --base-href /sub/
    

    如何解决此问题?这是角度问题还是可以用nginx config修复?我尝试过proxy\u pass,但没有成功。

    2 回复  |  直到 8 年前
        1
  •  4
  •   David    8 年前

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

    在您的例子中,您添加了nginx规则,以便可以从子文件夹提供内容,但使用“根”位置( http://sub.example.com )

    因此,从角度来看,所有内容都像是从根文件夹提供的,这意味着不需要指定base href

        2
  •  0
  •   nyxz    8 年前

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

    推荐文章