問題描述
我正在做一個基本的 jquery 操場場。我收到錯誤:net::ERR_CONTENT_LENGTH_MISMATCH 發生在頁面載入和背景影像沒有載入在頁面上。
所討論的影像是 300kb,也是動態變化的。我假設這與檔案大小有關,但我真的不知道什麼。
原來使用的 HTML
<p style="margin:0px; padding:0px;"><img id="background" src="/bg1.jpg" style='width:100%;' border="0" alt="Null"></p>
javascript /jquery 用來改變背景:
var changebg = function() {
if (myscore % 20 == 0) {
level++;
document.getElementById("level").innerHTML = "Level: " + level;
$("#level").fadeIn(1500, function(){$("#level").hide()})
backgroundindex++;
if (backgroundindex > 6) {backgroundindex == Math.floor((Math.random()*6)+1)};
document.getElementById("background").src="/bg"+backgroundindex+".jpg";
};
}
最佳解決思路
I am getting Error: net::ERR_CONTENT_LENGTH_MISMATCH
看看您的伺服器日誌,以確定真正的問題是什麼。
對我來說,這個問題放在 nginx 和檔案許可權之間:
-
tail -f /usr/local/var/log/nginx/error.log或執行nginx -t來確定您的 conf 位置,您可以在哪裡指定自定義日誌路徑。 -
重新整理瀏覽器中的資產,例如
http://localhost:3000/assets/jquery/jquery.js
您可能會在日誌中看到類似的內容:
“/usr/local/var/run/nginx/proxy_temp/9/04/0000000049” failed (13: Permission denied) while reading upstream for file xyz
謝謝我如何修復:
sudo nginx -s stop
sudo rm -rf /usr/local/var/run/nginx/*
sudo nginx
次佳解決思路
總結
這是對我的情況發生了什麼的更詳細的解釋。在這裡選擇的答案幫助我解決了我的問題,這基本上是一個更詳細的版本的選擇答案關於如何和 whys!
解釋 Nginx 許可權
您可以將 nginx 作為 nobody 使用者執行,這是大多數示例配置中的常見做法。您將在配置頂部找到此行:
user nobody;
但是建議對於您的 web-apps 靜態內容,如 css,js 和影像檔案,以允許 nginx 訪問並透過繞過您的 web-app 容器來實現。這是你的配置的一部分:
location ^~ /static {
alias /path/to/your/static/folder/;
autoindex on;
expires max;
}
這是 nginx 需要訪問的資料夾。
另一方面,有 nginx 專用資料夾,在上面的答案中有:
/usr/local/var/run/nginx/
在我的情況 (CentOS),它在:
/var/lib/nginx/
怎麼會出錯?
在任何一種情況下,您可以打破 nginx:
1- Nginx 以任何人身份執行,但沒有正確的訪問您的靜態資料夾。
2- Nginx 以無人身份執行,但以 root 身份執行,以訪問您的靜態資料夾。
解決方案
我最好的解決辦法是改變 nginx 專用資料夾的許可權,以匹配我的靜態資料夾。然後執行 nginx 作為一個使用者正確訪問這兩個。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。