2016-08-24 41 views
0

我有一個節點應用程序有一個樣式表,JavaScript和圖像目錄在主節點應用程序目錄的公共目錄中。NGINX代理和NodeJS應用程序:href和sytylesheets和javascripts

當index.html呈現時,對這些目錄的HTML href調用失敗,代理不知道如何路由它們,因爲該位置未在href中提供。

所以我很難明白這是Nginx還是Node問題。我可以代理其他網絡服務器,如Tomcat,不存在此問題。

渲染HTML:

<link rel='stylesheet' href='/stylesheets/foundation.min.css' /> 
<link rel='stylesheet' href='/stylesheets/motion-ui.css' /> 
<link rel='stylesheet' href='/stylesheets/foundation-icons/foundation-icons.css' /> 
<link rel='stylesheet' href='/stylesheets/js-image-slider.css' /> 
<link rel='stylesheet' href='/stylesheets/generic.css' /> 
<link rel='stylesheet' href='/stylesheets/style.css' /> 
<script src="/javascripts/js-image-slider.js"></script> 
<script src="/javascripts/vendor/modernizr.js"></script> 

NGINX:位置

我曾嘗試基於博客上這麼多的變化,但發現沒有人的工作。

location/{ 
     root html; 
     index index.html index.htm; 
    } 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root html; 
    } 

    #Node App Server : latest try 
    location ~ /internship { 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_pass http://127.0.0.1:3000; 
    } 

    #Tomcat server 
    location /bi { 
      rewrite ^/bi(.*) /$1 break; 
      proxy_pass http://127.0.0.1:5566; 
      proxy_set_header Host $host; 
    } 
+0

發現我需要從href路徑中刪除前導'/'。 – James

回答

0

看來這可能是一個好主意,你可以多讀一點Nginx。 至於你的問題,似乎你沒有任何東西可以處理回送任何文件作爲迴應。 看着Nginx的文檔顯示回訪圖像下面的例子:

location /images/ { 
    try_files $uri /images/default.gif; 
} 

這個例子尋找的/圖像位置前綴/,然後它會嘗試找到其他請求的位置返回的默認圖像。 您可以對樣式表和js進行類似的請求。

看看在try_files documentation here.

不過,我會花更多的時間來研究一下這些指令的意思,因爲你可以很容易地通過不拒絕訪問您的網站的其他部分打開一個安全漏洞。