Я вижу конфликт между тем, что предлагают руководства по Rails 3.1, и тем, что Google PageSpeed предлагает для управления кэшированными активами.
Руководства по Rails 3.1 для конвейера активов предлагают решение для настройки сервера Apache здесь
Существенный бит конфигурации Apache:
<LocationMatch "^/assets/.*$">
# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
Header unset Last-Modified
Header unset ETag
FileETag None
# RFC says only cache for 1 year
ExpiresActive On
ExpiresDefault "access plus 1 year"
</LocationMatch>
Все работает, но когда я запускаю Google PageSpeed, он жалуется на то, что мне нужно «указать средство проверки кэша», задав либо Last-Modified
, либо ETag
, перечислив все файлы в папке ресурсов.
Комментирование Header unset Last-Modified
удовлетворяет PageSpeed.
Я провел быстрое тестирование различных загрузок страниц, и, по крайней мере, в Chrome это не имело никакого значения - ресурсы кэшировались в любом случае.
Кто-нибудь знает, что подходит?