在同一服务器中配置具有多个位置的nginx

时间:2017-10-15 23:33:16

标签: angular redirect nginx server location

我想部署从主要应用程序继承的多个角度应用程序。

主应用程序位于以下地址: myapp.com (目录 / etc / local / nginx / html / myapp

其他应用应位于以下地址: myapp.com/app_n (目录 / etc / local / nginx / html / app_n

我该如何配置呢?

我尝试了以下配置,但它没有工作:

server {
    listen       80;
    server_name  myapp.com;

    location /app_1 {
        alias /usr/local/nginx/html/app_1/dist;
    }

    location / {
        root html/myapp/dist;
        autoindex on;
        include /etc/nginx/mime.types;
        try_files $uri $uri/ /index.html =404;
    }
}

当网址为 myapp.com/app_1 时,有角度表示"未找到网页"。在 app_1 index.html 中,有一个脚本:

<script src="main.bundle.js">

当我查看时,我发现 app_1 使用的 main.bundle.js 实际上属于 myapp 。我的原因是因为服务器名称是 myapp.com

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您正在使用路径相对URI来访问资源文件。浏览器通过查找当前页面的URL的最后/来构造绝对路径。

因此,当使用网址http://myapp.com/app_1访问包含<script src="main.bundle.js">的网页时,浏览器会在http://myapp.com/main.bundle.js查找资源文件。

如果您使用路径相对URI,则必须将最终/放在正确的位置,因此:http://myapp.com/app_1/http://myapp.com/app_1/index.html都会导致浏览器查找资源文件在http://myapp.com/app_1/main.bundle.js