Назад | Перейти на главную страницу

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 Буду рад предоставить любые подробности, логи, конфиги и т. Д. Просто скажите, что вы хотите увидеть.

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

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

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