Tomcat устанавливает no-cache для файлов JS и CSS - PullRequest
3 голосов
/ 22 апреля 2011

Так расстраивает.: P

Действительно, хотелось бы, чтобы они кэшировались в браузерах пользователей, но он устанавливает это.-check = 0, pre-check = 0

Как мне это остановить?

Я пытался посмотреть в наших настройках что-нибудь, касающееся кэширования.Используются все значения по умолчанию, что в соответствии с документацией означает, что это разрешено.Различаются ли статические файлы, такие как JS и CSS?

Редактировать: я заметил, что некоторые файлы JS разрешено кэшировать, поскольку Chrome говорит, что они были «извлечены из кэша».Однако CSS-файлы отсутствуют.

Ответы [ 3 ]

1 голос
/ 22 апреля 2011

Либо сервлет может задать срок действия кэша и последние измененные заголовки ответа.

Я бы также рекомендовал GZIP-сжатие JavaScript и CSS.Tomcat поставляется с фильтром сжатия в каталоге / examples, который вы можете подключить для соответствующих URL-адресов.

Вам следует объединить и минимизировать JavaScript и CSS для повышения производительности.

Все это рекомендации от плагина YSlow для Firefox.Вы можете увидеть, насколько эффективны эти меры, используя плагин Firebug.

1 голос
/ 22 апреля 2011

Вы можете написать свой собственный фильтр кэша и настроить его в своем веб-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 голос
/ 22 апреля 2011
<FilesMatch "\.(js|css)$">
    ExpiresDefault "now plus 1 week"
</Files>

в вашей конфигурации Apache должно помочь, если он где-то после вещи конфигурации Tomcat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...