2010-04-27 47 views
71

我將一個外部CSS文件和一個外部JS文件添加到我的頁眉和頁腳。 加載HTTPS頁面時,一些瀏覽器抱怨我正在加載不安全的內容。如何在需要時通過HTTPS包含CSS和JS文件?

當頁面本身爲HTTPS時,是否有一種簡單的方法可以讓瀏覽器通過HTTPS加載外部內容?

回答

116

使用協議相關路徑。

因此不

<link rel="stylesheet" href="http://example.com/style.css"> 
<script src="http://example.com/script.js"></script> 

但這樣

<link rel="stylesheet" href="//example.com/style.css"> 
<script src="//example.com/script.js"></script> 

那麼它將使用父頁面的協議。

+0

http://webdosanddonts.com/dont-use-protocol -relative-paths-to-css-files – 2010-04-27 22:27:00

+4

這是一個特定於瀏覽器的問題。沒有其他方法可以完全解決這個問題,而完全可以在服務器端使用相關視圖技術的功能來完成。 – BalusC 2010-04-27 22:31:20

+1

作爲一個額外的說明,如果你關心[正確的緩存條目](http://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-瀏覽器/ 2068407#2068407)在響應頭文件中,瀏覽器不會在後續請求上下載它,直到到期爲止,包括IE。 – BalusC 2010-04-27 22:41:42

0

如果您使用相對路徑(和內容是在同一個域),則內容應該使用哪個協議請求的頁面。

然而,如果你跨域去一個CDN或資源網站,或者如果您需要使用絕對路徑,則需要使用服務器端腳本來更改鏈接,或始終使用https://

+0

我們正在跨域。將使用JavaScript來編寫包含工作?如果document.location.protocol然後... – 2010-04-27 22:19:41

+0

嘗試使用js通過插入到HEAD標記標記,也許一個簡單的document.write腳本標記內..

相關問題