Управление кэшем Rails 5 не работает в heroku

#ruby-on-rails #heroku #cache-control

#ruby-on-rails #heroku #управление кэшем

Вопрос:

Я настраиваю CDN в своем приложении и устанавливаю в cache-control соответствии с новыми стандартами в Rails 5:

 config.public_file_server.headers = {
    'Cache-Control' => 'public, max-age = 31536000',
    'Expires' => "# {1.year.from_now.to_formatted_s (: rfc822)}"
}
 

Но когда я развертываю приложение в Heroku, это указывает на то, что я не использую новые стандарты:

ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕВАНИИ: config.static_cache_control устарело и будет удалено в Rails 5.1. Пожалуйста, используйте config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=604800' } вместо этого. (вызывается из /app/config/application.rb:14)

И когда я просматриваю заголовки ответов страницы, которые не применяются cache-control к set

Ссылка на изображение

Комментарии:

1. Вы уверены, что не сидите config.static_cache_control в другом месте? Потому что Heroku жалуется на это и предлагает использовать настройки так, как вы их внедрили.

2. @JochemSchulenklopper следите за моим файлом production .rb pastebin.com/NJb24rkJ , мое приложение не использует static_cache_control, я уверен в этом, я действительно не понимаю, почему heroku предупреждает, что: /

3. Ах, так случайно ваше приложение устанавливало config.static_cache_control . Не в вашей конфигурации, а через драгоценный камень.

Ответ №1:

Эта запятая между значениями хэша отсутствует только в этом вопросе или также в вашей конфигурации? Попробуй это:

 config.public_file_server.headers = {
  'Cache-Control' => 'public, max-age = 31536000',
  'Expires' => "# {1.year.from_now.to_formatted_s (: rfc822)}"
}
 

Комментарии:

1. в моем производственном файле с этой запятой я написал здесь неправильно, извините, перейдите по моей ссылке производство pastebin.com/NJb24rkJ файл, спасибо за помощь!

2. Хорошо, я редактирую ваш первоначальный вопрос (похоже, у вас пока недостаточно кармы для этого), чтобы исправить опечатку в тексте.

Ответ №2:

Я нашел решение по этой проблеме https://github.com/romanbsd/heroku-deflater/issues/26 , проблема была с дефлятором gem heroku

Комментарии:

1. Ха, так что gem ввел static_cache_control переменную, на которую жаловался Heroku. Хороший улов!