Apache неправильно обслуживает измененные статические ресурсы: обслуживает устаревший файл с размерами, скорректированными в соответствии с размером нового файла [дубликат]

На этот вопрос уже есть ответ здесь:

У меня есть проект CakePHP, работающий в CentOS VirtualBox. Веб-сайт обслуживается Apache 2.2.15.

В корневой папке документа находятся файлы JS. Казалось, что Apache обслуживает их файл.

Но после того, как я отредактирую файл JS, Apache будет обслуживать старый файл. Он изменит размер старого файла, чтобы он соответствовал размеру нового файла, и будет обслуживать измененный старый файл:

  • Если новый файл меньше, чем старый файл, он сократит старый файл и предоставит результат;
  • Если новый файл больше старого, он добавит символы к старому файлу и выдаст результат.

Перезапуск Apache не решает проблему.

Я нашел единственный способ заставить Apache обслуживать текущий файл - это переместить файл в другое место. Тогда CakePHP отобразит причудливую страницу 404. Затем я перемещаю файл обратно, и Apache отображает файл в его текущем состоянии.

Но i2.2.15t заморозит файл в этом состоянии, и после повторного изменения файла мне придется повторить трюк снова.

Журналы Apache чистые, в файле журнала доступа отображается следующее:

172.28.128.1 - - [12 / июл / 2014: 07: 42: 13 -0400] "GET /assets/js/compiled/editable_group.js HTTP / 1.1" 200 903

В чем причина проблемы и как мне решить?

PS Я буду рад предоставить любые подробности, логи, конфиги и т. д. Просто скажите мне, что вы хотите увидеть.

1
задан 12 July 2014 в 14:45
1 ответ

Хорошо, нашел ответ в этом вопросе:

Apache на CentOS 5.9 VM неправильно обслуживает модифицированные файлы

Решение - включить EnableSendfile off в раздел <директория> в конфигурационном файле Apache.

.
2
ответ дан 3 December 2019 в 21:15

Теги

Похожие вопросы