2012-06-07 41 views
1

通過SSL連接時,特定樣式將從樣式表中刪除。我無法想出任何韻律或理由,但它的風格始終如一。也許值得注意的是,要隱藏顯示的元素:無;是可見的。列表樣式也會恢復到默認的瀏覽器設置,並且一些背景圖片(不是全部)也會被丟棄。所有的URI路徑都是相對的 - 無論是從頁頭還是從樣式表本身。css樣式消失在ssl上

例如,下面的作品...

body { background: url(../images/bg-yellowstripes.jpg) repeat 0 0; } 

然而,接下來的行不...

#masthead { background: url(../images/bg-header.jpg) repeat-x 0 100%; } 

任何人有任何這方面的經驗,可以幫助頁面顯示正常並避免IE混合內容警告?隻影響Internet Explorer btw。 Firefox,Safari,Chrome都正常顯示頁面,沒有任何SSL警告。

+0

請張貼鏈接到網站或一些源代碼。 – Wex

+4

您可能在某處遇到緩存問題。它與SSL無關,只是它是一種不同的配置。 – EJP

+0

@EJP - 這也是我的猜想。我沒有嘗試縮小樣式,但除此之外我不知道該如何強制緩存或強制刷新和加載。 – iamsar

回答

-1

嘗試增加引號來你的CSS背景的路徑,像這樣:

body { background: url('../images/bg-yellowstripes.jpg') repeat 0 0; } 

而且,我讀過background屬性需要的值的特定順序(顏色網址XPOS Ypos重複)。因此,這將是這樣的:

body { background: url('../images/bg-yellowstripes.jpg') 0 0 repeat; } 

除此之外,我的風格是降得一次,當我在https://網站加載它們在http://。但是由於你使用的是相對路徑,我猜這是另一回事。

這可能是一個緩存的問題。

2

這聽起來像你加載使用絕對路徑你的CSS文件。例如,如果您的網站將通過HTTP和HTTPS提供服務,則應該使用相對路徑。

絕對:(不要這樣通過SSL查看時,IE會給出安全警告)

<link rel="stylesheet" href="http://mydomain.com/css/style.css" /> 

相對:

<link rel="stylesheet" href="/css/style.css" /> 

如果樣式是從另一個未來域(如CDN)使用雙斜線而不是指定協議。這將導致該路徑繼承進行CSS請求時請求頁面的協議。

<link rel="stylesheet" href="//otherdomain.com/css/style.css" /> 

此外,使用IE開發人員工具。他們會告訴你到底哪些網絡資源是從SSL下載的頁面加載的,而不是。

+0

就像我在OP中所說的,所有的URL都是相對的。 – iamsar

0

除了相對路徑結構,如果是IE9以下沒有在客戶端的內存限制,如果樣式表是大它只會停止加載它們。我可以看到這種情況出現,如果你正在緩存一堆文件