#caching #tomcat #no-cache
#кэширование #tomcat #нет кэша
Вопрос:
Так расстраивает. 😛
Действительно хотелось бы, чтобы они кэшировались в браузерах пользователей, но он устанавливает это.
Управление кэшем: нет хранилища, нет кэша, необходимо повторно проверять, постпроверка = 0, предварительная проверка=0
Как мне остановить это?
Я попытался посмотреть в наших настройках все, что связано с кэшированием. Используются все значения по умолчанию, что, согласно документации, означает, что это разрешено. Отличаются ли статические файлы, такие как JS и CSS?
Редактировать: Я заметил, что некоторым файлам JS разрешено кэшировать, поскольку Chrome сообщает, что они были «извлечены из кэша». Однако файлы CSS отсутствуют.
Ответ №1:
Вы могли бы написать свой собственный фильтр кэша и настроить его в вашем web xml.
Здесь вы найдете простой, но отличный пример того, как это реализовать.
в вашем web.xml
вы объявляете свой фильтр:
<filter>
<description>Set HTTP headers for a mapping.</description>
<filter-name>CacheFilter</filter-name>
<filter-class>your.package.CacheFilter</filter-class>
<init-param>
<description>Adds an expires header to the response</description>
<param-name>header</param-name>
<param-value>Expires: Thu, 26 Apr 2012 20:00:00 GMT</param-value>
</init-param>
</filter>
затем сопоставьте это (примените к ответам):
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.js</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.css</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Возможно, вы также захотите использовать фильтр сжатия (таким же образом), чтобы уменьшить нагрузку на данные, отправляемые с сервера. Эта реализация фильтра gzip работает у меня уже много лет (вместе с фильтром кэша), и с ними никогда не возникало никаких проблем.
Комментарии:
1. Tomcat поставляется с фильтром сжатия; Я бы рекомендовал использовать его. И фильтр кэша? Вы беспокоитесь о безопасности потоков? Я бы.
Ответ №2:
Или вы можете попросить сервлет установить срок действия кэша и заголовки последнего изменения в ответе.
Я бы также рекомендовал GZIP сжимать JavaScript и CSS. Tomcat поставляется с фильтром сжатия в каталоге /examples, который вы можете подключить для получения соответствующих URL-адресов.
Вы должны объединить и минимизировать свои JavaScript и CSS для повышения производительности.
Все это рекомендации плагина YSlow для Firefox. Вы можете увидеть, насколько эффективны эти меры, используя подключаемый модуль Firebug.
Комментарии:
1. Мы уже архивируем файлы CSS и Javascript. Мы также рассматриваем возможность сокращения нашего JS.
2. Оказывается, это было самое очевидное место, как описано здесь. 😀 Не знаю, как я мог это пропустить, хе-хе. Мы сами устанавливали параметры, которые я хотел отключить вручную.
Ответ №3:
<FilesMatch ".(js|css)$">
ExpiresDefault "now plus 1 week"
</Files>
в вашей конфигурации Apache должно сработать, если оно находится где-то после содержимого конфигурации Tomcat.
Комментарии:
1. Мы не используем Apache или, по крайней мере, у меня нет доступа к do на производственных компьютерах.