2017-02-01 14 views
0

Я использую сервер apache tomcat и имею веб-приложение, отображающее несколько js, css и файлов изображений. Я хочу убедиться, что эти файлы кэшируются браузером, поэтому каждый раз они не запрашиваются. Однако я заметил, что некоторые файлы кэшируются, а другие - нет. Я узнал, что заголовок ответа из приложения истекает: «31 декабря 1969 года в 19:00». Пройдя через this, я удалил ограничение безопасности tomcat из web.xml, который успешно удалил заголовок. Я также настроил заголовок Expires в своем приложении до 1 недели от настоящего. Это также не гарантировало кэширование страниц.Страницы, которые не загружаются в браузере

После этого я настроил заголовок Cache-Control на публикацию с максимальным возрастом до 1 недели. Ни одно из этих изменений не помогает мне. Кроме того, страницы получать кэш и не получает кэшируется имеют те же заголовки, как показано ниже:

HTTP/1.1 200 OK 
Cache-Control: max-age=604800, public 
ETag: 240983 
Last-Modified: Fri, 09 Sep 2016 18:49:42 GMT 
Date: Wed, 01 Feb 2017 07:34:25 GMT 
via: HTTP/1.1 ab-d-klt-tom1 
Expires: Wed, 08 Feb 2017 07:35:29 GMT 
Content-Type: application/x-javascript 
Transfer-Encoding: chunked 
Content-Encoding: gzip 
Vary: Accept-Encoding 
X-FRAME-OPTIONS: SAMEORIGIN 
X-Powered-By: Servlet/3.0 
X-UA-Compatible: IE=edge 
Server: Apache 

Помимо этого, я также попытался ExpiresFilter, как описано here без удачи.

EDIT: Мое приложение при развертывании в среде Windows с Tomcat и без SSL успешно кэширует все файлы в браузере.

Однако, когда приложение развертывается в среде Linux с Tomcat, а SSL не кэширует файлы. Является ли SSL причиной этого?

+0

Можете ли вы показать нам HTTP-заголовки запроса ресурса, который не кэшируются браузером? –

+0

@LeonidVasilyev Я отредактировал мое сообщение выше. Может ли SSL быть причиной этой проблемы? –

+0

заголовки запроса заключаются в следующем: GET /html/en/default/***.css HTTP/1.1 Хост: 10.62.137.70 соединения: поддержания активности User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/55.0.2883.87 Safari/537.36 Принять: текст/css, */*; q = 0,1 Ссылка: *** Accept-Encoding: gzip, deflate, sdch, br Accept-язык: en-US, en; q = 0,8 Cookie: _ga = GA1.1.794081272.1485321205; _gat = 1; JSESSIONID = *** –

ответ

1

Вам необходимо избавиться от ошибки сертификата SSL. Chrome не кэширует ресурсы с такими ошибками.

Для получения дополнительной информации смотрите вопросы Chromium ниже:

+0

спасибо за ваш ответ :) Я протестировал свое приложение на другом сервере с действующим SSL-сертификатом, и он сработал. –