Предотвращение кэширования браузера при обновлении веб-приложений - PullRequest
5 голосов
/ 12 января 2010

У меня довольно проблемная проблема, для которой я пока не нашел хорошего решения.

Я разрешаю кеширование всех моих статических файлов приложений (JS, CSS и изображений) браузером для повышения производительности.

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

Есть ли какой-нибудь хороший мультибраузерный подход, который все еще позволяет кэшировать файлы, но может заставить их перезагрузить при необходимости?

Спасибо за любую информацию.

Ответы [ 4 ]

7 голосов
/ 12 января 2010

Добавить Somethign к URL-адресу в качестве параметра, например, myresource.css?version=1. Файл будет обработан правильно, это хитрость для принудительной перезагрузки кеша. Вам нужно только генерировать HTML-страницу динамически.

0 голосов
/ 20 марта 2018

Вы можете использовать формат ниже для автоматического случайного управления версиями

для файла js:

<script type="text/javascript" src="js/app.js?seq=<%=DateTime.Now.Ticks%>"></script>

и для файла css:

<link rel="stylesheet" type="text/css" href="Styles/styles.css?seq=<%=DateTime.Now.Ticks%>" />

0 голосов
/ 12 января 2010

Варианты, которые я могу придумать:

  • уменьшить кеш TTL
  • Хранить кешируемый материал в версионном дереве каталогов, например:
    • / приложение / 1,2 / CSS /
    • / приложение / 1.2 / JS /
0 голосов
/ 12 января 2010

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

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