Подтвердить что ты не робот

Javascript - ERR_CONTENT_LENGTH_MISMATCH

Я создаю базовую площадку для игровых площадок jquery. Я получаю сообщение об ошибке: net::ERR_CONTENT_LENGTH_MISMATCH происходит при загрузке страницы, а фоновые изображения не загружаются на страницу.

Изображение, о котором идет речь, составляет 300 кбайт, а также динамически меняется. Я предполагаю, что это имеет какое-то отношение к размерам файлов, но я действительно не знаю, что.

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";
  };
}
4b9b3361

Ответ 1

Я получаю сообщение об ошибке: 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" не удалось (13: Permission denied) при чтении вверх по потоку для файла xyz

Вот как я исправил:

sudo nginx -s stop    
sudo rm -rf /usr/local/var/run/nginx/*    
sudo nginx

Ответ 2

Резюме

Вот более подробное объяснение того, что произошло в моем случае. Выбранный ответ помог мне решить мою проблему, и это в основном более подробная версия выбранного ответа на хау и whys!

Объяснение разрешений Nginx

Вы можете запустить nginx в качестве пользователя nobody, и это обычная практика в большинстве конфигураций образцов. Вы найдете эту строку в верхней части своей конфигурации:

user nobody;

Тем не менее, рекомендуется, чтобы для ваших веб-приложений статическое содержимое, такое как css, js и файлы изображений, позволяло доступ к nginx и обналичить его через обход вашего веб-приложения
контейнер. Это часть вашего конфига, где он читает:

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 с пользователем, имеющим правильный доступ к обоим.

Ответ 3

У меня была такая же ошибка при создании приложения rails. Я заменил изображение другим изображением и не изменил имя файла, которое запустило вышеприведенную ошибку. Простое изменение имени файла заставило проблему исчезнуть.

Ответ 4

В моем случае я использовал nodemon server.js в приложении next.js (на стороне сервера). При переключении обратно на node server.js ошибка исчезла.

Ответ 5

Другой случай, когда у меня появилась эта ошибка: при попытке загрузить файл с сервера узла с Angular 7 мне пришлось перенаправить с помощью window.location.href = <node_server_url> вместо обычного httpClient.get<any>(<node_server_url>).

Ответ 6

Вот еще один способ решить эту проблему: http://derekneely.com/2009/06/nginx-failed-13-permission-denied-while-reading-upstream/

ПРИМЕЧАНИЕ. С точки зрения безопасности я не согласен с ссылкой, в которой автор предлагает предоставить 777 разрешений для папок. Дайте минимальный уровень, необходимый для выполнения работы (в этом случае 700 должно быть хорошо, вы могли бы даже снизить, хотя я еще не пытался это сделать).