最近我在進(jìn)行微信開(kāi)發(fā)時(shí)遇到了一個(gè)問(wèn)題--微信鏈接CSS無(wú)效,即在HTML中引入的CSS文件無(wú)法生效。在Google上搜了一下,發(fā)現(xiàn)這個(gè)問(wèn)題很常見(jiàn),而且原因有很多。
其中最主要的原因是微信客戶端會(huì)對(duì)外部鏈接的CSS文件進(jìn)行安全過(guò)濾,只有符合一定規(guī)則的文件才會(huì)被加載。具體來(lái)說(shuō),下面兩種情況會(huì)被攔截:
這種情況下,微信客戶端會(huì)提示:“由于含有不安全內(nèi)容,本次訪問(wèn)被拒絕。”
@import url("http://example.com/style.css");
這種情況下,微信客戶端會(huì)不做任何提示,但CSS文件無(wú)法生效。
為了解決這個(gè)問(wèn)題,我們需要把CSS文件放在微信允許加載的目錄中。具體來(lái)說(shuō),有以下幾種方法:
1. 把CSS文件放在同一主機(jī)上,即使不在同一域名或子域名下也可以。例如,CSS文件放在http://www.example.com/css/style.css,HTML文件放在http://m.example.com/index.html。
2. 把CSS文件放在微信的安全目錄下。在微信中訪問(wèn)一個(gè)頁(yè)面時(shí),會(huì)在SD卡上創(chuàng)建一個(gè)名為“Weixin”的目錄,并在其中創(chuàng)建一個(gè)名為“Weixintemp”或“WeixinRes”(不同的版本可能略有不同)的目錄。把CSS文件放在這個(gè)目錄下即可。注意,這種方法只適用于Android系統(tǒng),iOS系統(tǒng)不支持。
3. 如果CSS文件不是經(jīng)常變動(dòng)的,可以通過(guò)base64編碼后將CSS內(nèi)容嵌入HTML頁(yè)面中。這樣雖然會(huì)增加HTML文件的大小,但可以避免微信安全檢查,同時(shí)可以減少HTTP請(qǐng)求。
總之,要解決微信鏈接CSS無(wú)效的問(wèn)題,需要遵循微信的安全規(guī)則并選擇合適的解決方法。希望本文能幫助大家解決這個(gè)頭疼的問(wèn)題。