cache-control和zip壓縮引起的在IE6下js和css失效

來源:互聯網
上載者:User

 線上服務的主要頁面在IE6下竟然不能顯示CSS,這是一個重大故障。於是查原因,先用httpwatch查看頁面引用的CSS,可以正確下載,但是在頁面中卻沒有起作用。

搜尋尋找到IE6有這樣一個BUG,在使用可壓縮方式輸出並且不使用緩衝的情況下,CSS不能被解釋,包括JS。

查看我們輸出CSS的伺服器輸出頭域,確實是你不用壓縮方式輸出,並且頭域中確實輸出了cache-control:no-store的選項。

無疑觸發了IE6的這個BUG。

 

但是有些節點的伺服器是同一套發程式發布的,頭域中同樣存在上面兩個選項,IE6訪問卻又正常。

經過比對,這些正常的伺服器竟然是squid的老伺服器,輸出的HTTP協議是1.0,而cache-controlHTTP/1.1中定義的,也就是這些伺服器上輸出的cache-control:no-store

選項被忽略,反而正常了。真是太狗血了。

 

最後尋找為什麼要輸出 cache-control:no-store,結果發現程式員的代碼邏輯出錯了,本來只有發生異常的時候才輸出這個頭(異常情況下不緩衝,下次重新擷取),結果

他老人家竟然把判斷條件寫錯了,變成99.99%的使用者走到這個分支。何止是狗血啊......

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.