2016-07-16 6 views
0

Я проверил тестовый прогон для проверки скорости моей страницы. Он сказал, что «Установка даты истечения срока действия или максимального возраста в заголовках HTTP для статических ресурсов» указывает браузеру на загрузку ранее загруженных ресурсов с локального диска, а не по сети ».[play framework] Использование кеширования браузера

My Page using Play Framework. Нашел много ответов относительно файла .htaccess, но он не поддерживается в Play Framework. Как кэшировать статические файлы на уровне браузера?

+0

Вы работаете в режиме воспроизведения? Если это так, браузер должен кэшировать активы уже ... – Salem

+0

Да. Я запускаю его в режиме производства. По-прежнему понимание страницы Google говорит об этом. @Salem –

ответ

1

При использовании Play в режиме производства он уже устанавливает заголовок ETag, поэтому всякий раз, когда браузер запрашивает файл, соответствующий этому eTag, воспроизведение просто возвращает 304 Not Modified. Это сохранит ваши данные (браузер не будет загружать файл снова, если он имеет правильную версию), но все еще требует запроса на сервер.

Если вы хотите указать дату истечения срока действия, вы можете использовать assets.defaultCache="max-age=3600" для вашего application.conf (приспособить значение для ваших нужд: 3600 - один час в секундах).

Я не могу проверить это прямо сейчас, но я думаю, что Play также устанавливает Cache-Control: max-age=3600, поэтому, вероятно, предупреждение, которое вы получаете, связано с тем, что это значение слишком мало для инструмента, который вы используете для проверки кеширования.

Вы также можете установить время expiracy к отдельным активам (см https://www.playframework.com/documentation/2.5.x/AssetsOverview#Additional-Cache-Control-directive)

Обратите внимание, что вы должны только указать время высокого expiracy к активам, которые вы уверены, что не меняет много ...

+0

Спасибо за помощь @Salem –

+0

Отлично, спасибо! Установка 'assets.defaultCache' работает, но только в режиме производства, поэтому не проверяйте заголовок в режиме разработки (' sbt run'). – Nick

Смежные вопросы