使用https訪問網站靜態資源無法加載

最近發現公司m站使用https訪問的時候,樣式無法加載,F12查看發現js,css等樣式還是以http開頭的,並且提示
This request has been blocked; the content must be served over HTTPS,因爲HTTPS 承載的頁面上不允許出現 http 請求,所以遇到http的樣式就無法加載了。後臺是使用 request.getScheme()獲取的請求頭

在這裏插入圖片描述
按照網上搜索的解決方案是在nginx添加
proxy_set_header X-Forwarded-Proto $scheme;
在這裏插入圖片描述
然後在tomcat的server.xml的engine模塊下添加

在這裏插入圖片描述
在這裏插入圖片描述
至此,本地使用https訪問的時候靜態資源也是https了。問題得以解決
但是在部署上線的時候發現線上加載的靜態資源還是http的。本地驗證通過,服務器沒有生效,也就是說request.getScheme()獲取的請求頭還是http
後面改成
request.getHeader(「X-Forwarded-Proto」),部署到線上才正確識別到時https

在這裏插入圖片描述 總結下來就是: request.getScheme()在localhost已經能正確識別到是http還是https,但是線上必須要用request.getHeader(「X-Forwarded-Proto」)才能識別,反正就是用request.getScheme()不行的話就考慮用request.getHeader(「X-Forwarded-Proto」)去獲取正確的協議。