У меня есть папка с этим файлом: channel.html
В той же папке у меня есть файл .htaccess
<Files channel.html>
ExpiresActive On
ExpiresDefault A31536000
Header set Cache-Control "max-age=31536000"
</Files>
curl -I /channel.html:
HTTP/1.1 200 OK
Date: Wed, 09 Nov 2011 17:27:30 GMT
Server: Apache
Accept-Ranges: bytes
X-Mod-Pagespeed: 0.9.18.7-900
Cache-Control: max-age=0, no-cache, no-store
Vary: Accept-Encoding
Content-Length: 59
Content-Type: text/html
Если я добавлю ForceType text/plain
на .htaccess работает как надо, но с неправильным Content-Type
, очевидно.
Что мне делать, чтобы исправить или отладить это раздражение?
Возможно, у вас что-то сбрасывает ваши заголовки. Если это сценарий, а не просто статический контент, ваше веб-приложение также может устанавливать заголовки кеша.
Кроме того, я вижу, что вы используете скорость mod_page. Я знаю, что он пытается сделать некоторые оптимизации, возможно, он тоже устанавливает заголовки для вас.
Я бы попробовал следующее: Заголовок отключил Cache-Control в вашем .htaccess и посмотрел, получаете ли вы по-прежнему заголовок Cache. Если вы это сделаете, то вы знаете, что заголовок кеша внедряется в другое место.
Изменяя mime / type, он предполагает, что все, что устанавливает заголовок, делается только для text / html, поэтому он не касается text / plain.
Поскольку заголовок Expires работает для text / plain, но не для text / html, пробовали ли вы добавить ExpiresByType text/html "access plus 1 year"
? Или выполните поиск в остальной части конфигурации ExpiresByType text/html
директива в другом месте, которая отменяет значение по умолчанию?
Вы включили перезапись заголовков? если вы можете обнаружить недопустимую команду ExpiresActive, возможно, неправильно написанную или определенную модулем, не включенным в конфигурацию сервера
в apache2 / error.log, тогда вы можете запустить sudo a2enmod headers
как рекомендовано в https://stackoverflow.com/questions/8260738/ruby-on-rails-3-1-leverage-browser-caching