установите заголовок ответа
Чтобы включить браузер кэширование необходимо установить Cache-Control и заголовок Expires ответа.
Debugging кончик
Чтобы просмотреть существующие параметры кэша, используйте отладчик браузера. Для Chrome, в то время как на любой странице в приложении откройте отладчик и посмотрите:
Важно, чтобы увидеть, какой эффект ваших изменений коды сделать. Запустите это в своем приложении как есть и получите базовый ответный заголовок.
Настройка заголовков ответа
Если у вас есть доступ к серверу конфигурационных файлов, устанавливающих кэширование на Linux под управлением Apache или Nginx просто. Но мой опыт показывает, что Heroku не позволяет вам напрямую изменять конфигурационные файлы сервера.
без возможности изменять .htaccess или nginx.conf на сервере у вас есть 2 варианта:
1- Реализовать кэширование для приложения рельсов на уровне контроллера, например:
def show
@company = Company.find(params[:id])
expires_in 3.minutes, :public => true
# ...
end
Это, по общему признанию, отвратительное решение.
2- Другой вариант Heroku предлагает HTTP-кеширование с использованием Rack :: Cache (надстройка Memcachier Heroku). У меня нет опыта в этом, поэтому никаких комментариев.
Заключение
Heroku обеспечивает прекрасную и простую среду Deploy, но предложить что простота, они заперли вниз конфигурацию. Я использовал Heroku для разработки и развертывания приложения в тестовом режиме, но перешел на VPS, где я мог бы реализовать оптимизацию на стороне сервера, например, кэширование для запуска приложения.
P.S. Чтобы ответить на часть CDN вопроса: так как ваш сервер устанавливает заголовки ответов, я не думаю, что конфигурация CDN влияет на кеширование.
Спасибо, это красиво написанный ответ. –
Добро пожаловать. Помогло ли это? – Elvn
Абсолютно! Задача решена. Извините, что я не могу дать вам больше очков! –