2013-04-05 4 views
5

Я обновляю свой сайт часто после завершения обновлений, когда мои клиенты сообщают, что старые изображения загружаются, а не новые. Я знаю, что они поступают из своего кеша браузера, но есть ли способ заставить скрипты не загружаться из кеша на сервере.nginx предотвращает загрузку из кеша

Я использую nginx с php-fpm.

+1

Вы можете попробовать использовать такие заголовки: 'header ('Истекает: Чт, 01-янв-70 00:00:01 GMT'); header ('Last-Modified:'. Gmdate ('D, d M Y H: i: s'). 'GMT'); header ('Cache-Control: no-store, no-cache, must-revalidate'); header ('Cache-Control: post-check = 0, pre-check = 0', false); header ('Pragma: no-cache'); ' – vikingmaster

ответ

11

Вы можете заставить HTTP-заголовки влиять на поведение кэширования браузера, однако это, вероятно, не очень хорошая идея в производственной среде, где вы хотите кэшировать.

Так просто использовать что-то вроде:

expires -1 

Чтобы заставить Cache-Control no-cache Header

Проверьте здесь для получения дополнительной информации:

http://wiki.nginx.org/HttpHeadersModule

Это сказанное, я получил себе в привычка просто менять изображения и статические имена файлов, когда я их пересматриваю. Возможно, это связано с работой с CDN, где это может быть невероятно полезно. Поэтому скажите, что у меня есть статические файлы, которые я могу часто обновлять (т. Е. Они не являются частью какого-либо определенного контента). Я бы назвал их такими:

someimagev1.jpg 
someimagev2.jpg 
somejs1.js 
somejs2.js 
etc. 

При необходимости меняйте значения (и ссылки в источнике HTML).

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