Apache некорректно обслуживает измененные статические ресурсы: обслуживает устаревший файл с размерами, откорректированными в соответствии с размером нового файла
У меня есть проект CakePHP, запущенный в CentOS VirtualBox. Сайт обслуживается Apache 2.2.15.
В корневой папке документа находятся файлы JS. Апач, казалось, подал им файл.
Но после того, как я отредактирую файл JS, Apache будет обслуживать старый файл. Он изменит размер старого файла в соответствии с размером нового файла и будет обслуживать измененный старый файл:
- Если новый файл меньше старого, он обрежет старый файл и выдаст результат;
- Если новый файл больше старого, он добавит
�
символы для старого файла и служить результат.
Перезапуск Apache не решает проблему.
Единственный способ заставить Apache обслуживать текущий файл - это переместить файл в другое место. Тогда CakePHP отобразит причудливую страницу 404. Затем я перемещаю файл обратно, и Apache отображает файл в его текущем состоянии.
Но i2.2.15t остановит файл в этом состоянии, и после изменения файла мне придется повторить трюк снова.
Журналы Apache чистые, файл журнала доступа отображает это:
172.28.128.1 - - [12 / Jul / 2014: 07: 42: 13 -0400] "GET /assets/js/compiled/editable_group.js HTTP / 1.1" 200 903
В чем причина проблемы и как мне ее решить?
PS Я буду рад предоставить любые детали, логи, конфиги и т. Д. Просто скажите мне, что вы хотите увидеть.
1 ответ
Хорошо, нашел ответ в этом вопросе:
Apache на CentOS 5.9 VM неправильно обслуживает измененные файлы
Решение состоит в том, чтобы включить EnableSendfile off
в <directory>
раздел в конфигурации Apache.