nginx靜態資源配置


解決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;       
        }

    }

參考資料:https://www.nginx.com/resources/admin-guide/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM