2017-10-15 440 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

相關問題