2015-07-11 113 views
5

問題圖片無法加載,淨:: ERR_CONTENT_LENGTH_MISMATCH

當你加載一個網頁上我的網站,很多時候,我Lightroom中和/或Photoshop保存的一個(或幾個)圖片(JPG文件)不會出現。它看起來像一個斷開的鏈接(ALT描述出現),但沒有圖像。硬重載瀏覽器可以解決問題(例如,在硬重載後所有圖像都可以正常加載)。

錯誤消息

鉻顯示它不會加載所有圖像的「ERR_CONTENT_LENGTH_MISMATCH」的警告。 (有時圖像會快速閃爍,纔去什麼看起來像一個死人圖像)

設置

上的共享主機上運行最新版本的WordPress(4.2.2)的。如果有問題,網站是SSL(https)。圖像位於主機上的圖像上傳文件夾(沒有像Imagemagick那樣複雜)。

我的故障排除

我已經使用上的各種機器(在Mac & PC)互聯網服務供應商不同的多個位置和各種瀏覽器(Chrome瀏覽器Safari瀏覽器&),其中一些沒有使用任何AD-複製的問題阻滯劑。

我已經試過如下:

  • 我問主人是否有在服務器端的問題。他們聲稱不。
  • 我試過重置functions.php文件。沒有影響。
  • 我禁用了所有插件。沒有影響。
  • 我已經在元字符集中以UTF-8格式加密。沒有影響。
  • 檢查我是否使用Gzip。我不是。
  • 啓用Wordpress Cache插件。沒有影響。
  • 清除所有不必要的重定向&命令的.htaccess。沒有 影響。
  • 替換全新安裝的wp-admin和wp-includes文件夾。沒有 影響。
  • 已刪除的Wordpress &從備份中重新安裝。沒有骰子。
  • 我已經把有這個問題的頁面的源代碼放到test.html文件中,並且圖像好像加載得很好。

我的思想&問題

的圖像是100-200KB每有時也有他們的網頁上有相當數量。是否超時,然後一旦我重新加載,所有內容都會顯示,因爲超時未被觸發?這是我無法完美理解問題的最佳隨機猜測。

任何想法我可以嘗試嗎?我應該刪除整個數據庫並重新啓動嗎?我所知道的關於電腦的一切都是自學的,服務器問題對我來說並不是一個強項。即使你不知道它可能是什麼,有人可以解釋一般來說內容長度不匹配是什麼嗎?

非常感謝!

+0

是數據庫或web文件夾上的圖像?你的意思是「硬盤重新加載解決方案」 –

+0

@JuanCarlosOropeza 圖像上傳到網絡文件夾。 (他們通過wordpress媒體上傳器上傳,但瀏覽時可以在上傳文件夾中看到實際的jpg文件)。該圖片的鏈接是該上傳文件夾中的jpg文件的直接鏈接。 至於硬重新加載,我的意思是如果我重新加載頁面(在Chrome中按Ctrl +重新加載),則顯示所有圖像。 – Tak

+0

我不熟悉wordpress,但如果頁面加載圖像重新加載我猜在瀏覽器端的問題。在Chrome上,按F12顯示控制檯窗口,查看網絡中發生的可以提示您的提示。 –

回答

4

當您從網絡服務器請求數據時,它首先回應有關數據(HTTP標頭)和,然後的一些信息與數據。其中一條信息,即HTTP標頭,被稱爲Content-Length。它告訴客戶端應該從服務器接收多少數據。當你的瀏覽器獲得的圖像,服務器的響應(非常簡化的樣子)

Content-Length: 100000 

< the image, 100000 bytes of data > 

客戶知道什麼時候它已經收到Content-Length告訴的數據量的要求完成。在這種情況下,在收到100KB(100000字節)之前,它認爲圖像不會被加載。

如果服務器客戶端從服務器接收數據前,或者如果客戶端收到比它接收的數據,客戶端會拋出一些類型的錯誤,並承擔數據打破了請求被損壞/不可用並處理它。如何處理可能因瀏覽器而異。

你是如何上傳圖片到你的網站的?我自己,我遇到這個問題,在文件的假設大小被存儲在數據庫中,並且這被用來設置Content-Length頭。數據庫中的文件大小不正確。 但是,我知道WordPress不會不是在數據庫中存儲文件大小;媒體上傳僅用URL表示。

如果Web服務器資源耗盡並且無法再滿足您的請求,也可能發生這種情況;你說你每頁都有很多圖片。如果您的共享主機計劃非常糟糕,則主機可能會施加限制,或者服務器無法處理其託管的所有網站的流量。

+0

非常感謝。這是一個非常明確的總結。瞭解「爲什麼」總是非常有幫助。 我會研究主機角度。 – Tak

+2

我收到一個失敗的請求和一個成功的請求(例如'TripHash-2001-3255-Seoul-Fish-Market.jpg'):在這兩種情況下,我都得到了一個Content-Length:217045。在失敗的請求中,我只獲得了圖像的第一個96kB,在成功的請求中我獲得了所有的212kB。我使用Firefox和Chrome重現了這個問題。我仍然不知道是什麼觸發了這個問題。 –

+0

謝謝@DavidDuponchel。目前,服務器端壓縮設置正在調查中。這讓我困惑了一陣子。知道你在Firefox中發生這種情況很有幫助。由於它影響到Gecko,Webkit和Blink,我認爲瀏覽器引擎錯誤也可能被拋出。 – Tak

0

我想圈出來以防其他人遇到此問題。看起來HTTPS和圖像檢索之間存在某種類型的毛刺導致了問題。雖然我不明白爲什麼,我將我的網站從SSL/HTTPS轉換爲簡單的HTTP(我可以做到這一點,因爲它不需要加密),並且它看起來應該像所有圖像一樣加載。

如果有人瞭解「爲什麼」,我很想知道問題實際是什麼。幸運的是,我能夠想出解決方法。所以,雖然這不能回答我的問題,但確實提供了導致問題的原因以及我的常識解決方法。

0

您可能會看到共享託管服務存在此問題。免費帶寬就像言論自由,不是免費的啤酒。資源中斷策略在流量峯值期間被調用。

分佈式系統架構通過插入前端CDN層(例如CloudFlare)解決了這個問題。 CDN緩存您的靜態資源,並可以大大減少主機的負載。事實上,對於完全靜態的站點,主機可以關閉。

CDN還有其他優勢,比如攻擊檢測,免費的SSL(不是啤酒)以及與共享主機相比整體改進的性能和安全性。

許多CDN是免費的(如在演講中)。你也可以升級到私人主機,但是你仍然可能需要一個前端層。