解決EE工程中靜態文件顯示問題
在工程中本地測試沒有問題,發現使用nginx配置了路徑的頁面,會獲取不到相應頁面的靜態文件問題
靜態文件的路徑類似為: http://localhost:8080/salama/static/js/lib/jquery.js
引用此靜態文件的實際路徑為: http://localhost:8080/salama/userInfo/?log=aaa&gender=1&city=bj (訪問此頁面會傳遞部分參數,然后打開一個調查問卷頁面)
現在給出一個二級域名: api.salama.com 直接使用域名能訪問到頁面,通過nginx的配置隱藏工程名稱和第一級目錄名稱(salama/userInfo)
nginx的配置為:
server {
listen 80;
server_name api.salama.com;
location / {
index index.html index.htm index.jsp;
proxy_pass http://localhost:8080/salama/userInfo/;
}
}
這樣配置訪問對應頁面沒有問題,但是無法獲取到靜態資源文件.
在瀏覽器控制台看到的靜態資源文件請求路徑為:
http://api.salama.com/salama/static/js/lib/jquery.js
顯然在api.salama.com返回的頁面中是無法獲取到個靜態資源文件的,解決辦法如下:
server {
listen 80;
server_name api.salama.com;
location / {
index index.html index.htm index.jsp;
proxy_pass http://localhost:8080/salama/userInfo/;
}
location /salama/static {
# 這里可以直接寫localhost:8080,nginx會把location后面的參數追加過來,還要注意不要亂添加 / 否則會導致無法訪問
proxy_pass http://localhost:8080;
}
}