2011-07-25 58 views
2

我有一個頁面調用大約32個樣式表。在另一頁,它調用< 30.在其他瀏覽器這兩個頁面看起來很好,但在IE瀏覽器的第一頁(8,7)上,最後2個樣式表沒有被調用,它完全攪亂佈局。我不確定如何在drupal中解決這個問題。IE不加載30多個樣式表(drupal)?

編輯: 另外,據我所知,有超過30個不是很好,但這是我們的網站最初是如何開發的。我們有一堆使用「drupal_add_css」添加syleshets的主題和模塊。

我試圖通過去管理/設置/性能壓縮CSS,但樣式錶鏈接不起作用,因爲我們正在使用我們的測試網站(http:// mysite:123)的端口號和生成的鏈接是http://mysite/public/css/random_string.css

+4

「我有一個頁面可以調用大約32個樣式表。」 =這是主要問題。你真的應該有一個樣式表。 –

+0

雖然我同意,但這是一個交給我處理的網站,它有許多模塊和主題一起工作。 – AllisonC

+0

實際上限制是31。 IE10將此限制增加到65534. http://blogs.msdn.com/b/ieinternals/archive/2011/05/14/internet-explorer-stylesheet-rule-selector-import-sheet-limit-maximum.aspx –

回答

3

可以使用管理/設置/性能和設置優化CSS來實現。這將推出1個CSS而不是32+。如果您正在開發並希望在IE中工作,則需要在更改css後清除緩存。我們傾向於在開發&時將其關閉,以便在IE或生產環境中進行測試。

所有最好的, 燼


回答艾莉森的評論(太長了註釋塊)

嗨AlisonC,

使用端口一個網站,我從來沒有嘗試過與Drupal。我建議確保您的網站的settings.php設置正確。可能需要爲您的文件夾設置一個特殊名稱(請參閱settings.php頂部的說明),或者您可能需要檢查$ base_url並確保它具有端口。

如果還是不行,還有用於緩存的CSS,同時開發(http://drupal.org/project/ie_css_optimizer)的模塊。我沒有使用它,但至少對於你的情況可能有點不同。 (輸入後,我注意到另一個用戶也推薦它)。

我已經假設你還在發展,纔去住我會刪除IE的CSS優化器模塊(或至少將其關閉),因爲它主要是一個開發者的幫手。我認爲這是我的知識的極限。祝你好運!

--Ember

+0

通過drupal加載當我們這樣做時,現在出現的樣式錶鏈接無效。當我嘗試去它時,它說沒有找到頁面。 – AllisonC

+0

嗨AlisonC,你在更改設置後清除了Drupal緩存嗎?此外,清除您的IE緩存,以防萬一它保留的URL的東西。我們通常不使用站點的端口,我們只使用測試域名,所以我不確定端口號碼可能會如何幹擾。 --ember – ember

+0

這不是它緩存它,它提供給樣式表的鏈接不包括端口號,所以它不會加載它。 – AllisonC

0

他們是如何被調入呢? 30個人<link href="blahblah.css">電話?或從@import指令的其他樣式表?請記住,如果存在語法錯誤,則樣式表的進一步處理將失敗。

+0

使用<鏈接href語法加載它們...使用drupal_add_css – AllisonC

2

這是IE瀏覽器的一個已知限制 - 你不能有任何給定的網頁上超過31個樣式表。

參考文獻:

你的唯一真正的解決辦法是,所以你甲肝樣式表結合e更少的個人CSS文件(使用Drupal的「優化CSS」選項)。但我承認這可能是一個痛苦,如果你試圖調試你的代碼等。

實際上,它是可能加載到31多個樣式表進入IE,但對於任何超過31,你需要通過另一個CSS文件中的@import行來完成。這在Drupal站點的上下文中是不可能的,每個樣式表都是由一個模塊添加的,並且您無法控制Drupal如何將它們添加到頁面中。

-1

實際上有一個模塊來處理這個問題。我沒有親自使用它,但它確實有5K +用戶(Drupal 6)。