1

Я пытаюсь кэшировать images, js and css путем настройки параметров кэша в urlrewrite.Кэширование с помощью Tuckey UrlRewrite

Мои файлы js/css получают кеширование, как ожидалось, но изображений не будет. Я не могу видеть заголовок Expires для изображений, несмотря на различные комбинации конфигураций. Вот конфигурация в urlrewrite.xml:

<rule> 
    <from>^.*\.(js|css|jpeg|jpg|png)$</from> 
    <set type="expires">2 years</set> 
</rule> 

Вот как каталоги (и файлы), выглядят как на сервере

/html/images/foo.jpg 
/html/js/bar.js 
/html/css/xyz.css 
/WEB-INF/urlrewrite.xml 
/WEB-INF/web.xml 

я охотился для конфигураций везде, где я мог думать, и нет никакой конкретной конфигурации изображений.

Где я должен смотреть дальше? Любая помощь будет оценена по достоинству. Спасибо.

PS: У меня есть проект стойки/весны.

ответ

1

В каком сервере приложений вы развертываете tomcat? если да

<filter> 
     <filter-name>ExpiresFilter</filter-name> 
     <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class> 
     <init-param> 
      <param-name>ExpiresByType image</param-name> 
      <param-value>access plus 100000 minutes</param-value> 
     </init-param> 
     <init-param> 
      <param-name>ExpiresByType text/css</param-name> 
      <param-value>access plus 100000 minutes</param-value> 
     </init-param> 
     <init-param> 
      <param-name>ExpiresByType application/javascript</param-name> 
      <param-value>access plus 10000 minutes</param-value> 
     </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>ExpiresFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
     <dispatcher>REQUEST</dispatcher> 
    </filter-mapping> 

использовать этот URL Rewrite не требуется

+0

Спасибо за отзыв. Тем не менее, я больше интересовался тем, что мне не хватало в моих конфигурациях. Я буду использовать это, если я не смогу понять, что и где я испортил. –

0

Первый:

Вы должны разместить все ваши URL переписать конфигурацию, которую вы имеете.

Второй:

Всегда проверяйте документацию для примеров, я не вижу, что вы пробовали.

url rewrite version 4.0

url rewrite version 3.0

Три:

Знаешь какая версия работает.

Наконец:

Вот Решение я сделал и его работать хорошо.

Часть, которую я должен изменить, в моем случае добавляет обе строки в три места да три. почему продолжают читать))

<set type="response-header" name="Cache-Control">max-age=290304000</set> 
<set type="expires" name="expires">24 hours</set> 

......

<rule> 
     <from>/images/((?:(?!/).)*)/(.*)$</from> 
     <to encode="true" last="true" qsappend = "true">/files/get.html&#63;file=$2&amp;preset=$1</to> 
     <set type="response-header" name="Cache-Control">max-age=290304000</set> 
     <set type="expires" name="expires">24 hours</set> 
    </rule> 

    <outbound-rule> 
     <from>/images/(.*)/(.*).(jpg|png|jpeg|gif).html</from> 
     <to>/images/$1/$2.$3</to> 
     <set type="response-header" name="Cache-Control">max-age=290304000</set> 
     <set type="expires" name="expires">24 hours</set> 
    </outbound-rule> 

    <rule> 
     <from>/files/original/(.*)$</from> 
     <to encode="true" last="true" qsappend = "true">/files/get.html&#63;file=$1</to> 
     <set type="response-header" name="Cache-Control">max-age=290304000</set> 
     <set type="expires" name="expires">24 hours</set> 
    </rule> 

Причина:

В зависимости от настроек вашего проекта есть правила и есть вне границы и другие вещи; они могут повторно написать URL-адрес несколько раз в соответствии с вашими сложностями и логикой правил , поэтому в моем случае я попытался сделать это с минимальным добавлением, но это не было работать, только когда я добавляю его в три места (без отображения всех моих правил но у вас появилась идея :))

И я сделал это, а его лучший подход, а

Using APACHE configuration

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