Вероятно, большинство из вас, как и я, сталкивались с PageSpeed Insights от Google. Используя этот инструмент, я проанализировал свой веб-сайт, чтобы понять, как его можно оптимизировать. До сих пор все было отлично до сих пор.
Инструмент Google указал, что мне нужно использовать кеширование браузера, установив дату истечения срока действия или максимальный возраст в заголовке HTTP для статических ресурсов. Во время моего исследования я наткнулся на ряд руководств, как это сделать: edgeguides.rubyonrails.org объяснял различные способы кэширования действий, шаблонов, фрагментов действий и т. д., но ничего о ресурсах, руководство по большому двоичному файлу приводило к сбоям в работе и несмотря на то, что электронная книга «Rails 5 Revealed» Алана Брэдберна не вызвала проблем при разработке, никакие ресурсы не использовались (TypeError: нет неявного преобразования хэш-ключа символа в строку).
Проблема в ближайшее время: как настроить файлы config/environments/*.rb, чтобы статические ресурсы имели «Expire» и/или «Max-age» в заголовках HTTP и удовлетворительную информацию PageSpeed Insights? Вот последняя конфигурация, которую я использовал в config/environments/production.rb:
config.cache_store = :memory_store, { 64.megabytes }
config.public_file_server.enable = true
config.public_file_server.headers = {
'Cache-Control' => 'public, max-age=172800',
'Expires' => "#{1.month.from_now.to_formatted_s(:rfc822)}" }
Версия Ruby on Rails: 5.0.0.1