2017-10-15 436 views
1

我想部署多个从主体应用程序继承的角度应用程序。在同一台服务器上配置多个位置的nginx

的主要应用是在地址:myapp.com(目录的/ etc /本地/ nginx的/ HTML/MYAPP

的其他应用程序应该在以下地址: MYAPP。 COM/app_n(目录的/ etc /本地/ 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"> 

当我检查,我发现main.bundle.js使用APP_1,实际上属于myapp。我虽然是因为服务器的名称是myapp.com

感谢您的帮助!

+0

你试过'/ main.bundle.js'(带有前导'/')吗? –

+0

问题是,脚本标记是由角度自动生成的。我不想修改角度的任何代码,但只能修改nginx配置文件。你认为这是可能的吗?谢谢 ! –

+0

@RichardSmith我试图使用“/main.bundle.js”,但没有奏效。我必须把“/app_1/main.bundle.js”放到工作中,但我有大约100个这样的应用程序...... –

回答

0

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

因此,当使用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

相关问题