как очистить кеш в gwt? - PullRequest
7 голосов
/ 25 ноября 2010

Как очистить кеш в gwt ?

или есть какой-либо способ, который запрещает браузеру сохранять кэш в gwt ?

Ответы [ 2 ]

16 голосов
/ 25 ноября 2010

При развертывании GWT-приложения важно избегать использования прокси-серверов и браузеров для кэширования .nocache.js-файлов, сгенерированных GWT. Одним из решений является реализация фильтра сервлетов, который добавляет необходимые заголовки HTTP, которые управляют поведением кэширования.

Вот такой фильтр: http://seewah.blogspot.com/2009/02/gwt-tips-2-nocachejs-getting-cached-in.html

Заголовки в этом примере:

Date: Wed, 24 Nov 2010 20:32:43 GMT
Expires: Wed, 01 Nov 2000 00:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache, no-store, must-revalidate

Date должно быть установлено на время запроса.

Expires лучше всего установить на какое-то время в прошлом, это заставляет всех считать контент уже устаревшим.

Pragma - это тег, который был заменен Cache-Control, но его не помешает.

Cache-Control no-cache означает, что браузер или прокси-сервер должен повторно проверить кэшированную копию перед ее отправкой клиенту. no-store означает, что никто никогда не хранит кэшированную копию (что делает no-cache избыточным). must-revalidate говорит, что браузер / прокси должен подчиняться информации о свежести и повторной проверке, также избыточной с no-store.

0 голосов
/ 03 июня 2016

Лучший способ сделать это, когда у вас сервер Apache2 посередине, - это настроить виртуальный хост для постоянной загрузки файлов css nocache.Вот вам пример: http://pgt.de/2011/01/27/apache-configuration-for-gwt-applications/comment-page-1/#comment-23996.

Поместите это в файл виртуального сервера:

  <IfModule mod_expires.c>
     ExpiresActive On
  </IfModule>

  <IfModule mod_headers.c>
     <ProxyMatch (.*)nocache\.js$>
        Header Set Cache-Control "max-age=0, no-store"
     </ProxyMatch>
     <ProxyMatch (.*)\.cache\.(.*)>
        Header Set Cache-Control "max-age=31536000, public, must-revalidate"
     </ProxyMatch>
     <ProxyMatch (.*)\.cache\.js$>
        Header Set Cache-Control "max-age=31536000, private"
     </ProxyMatch>
  </IfModule>

 <Proxy *>
     <IfModule mod_expires.c>
        ExpiresByType application/json   "now"
        ExpiresByType text/css            "now"
        ExpiresByType text/html          "now"
     </IfModule>
     <ifModule mod_headers.c>
         Header unset ETag
         Header unset Last-Modified
     </ifModule>
     FileETag None
  </Proxy>

Приветствия

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