Как я могу предотвратить кэширование JavaScript? Подход Querystring не работает - PullRequest
1 голос
/ 04 апреля 2011

Я видел другие подходы, которые присоединяют номер версии или хэш MD5 к строке запроса JS src.

e.g. <script src='/script/v1/'></script>

Однако мой JavaScript по-прежнему кэшируется в нескольких браузерах (Chrome, Firefox), когда я запускаю новую версию своего сайта.

Это кажется серьезной проблемой, которую решили другие, и я, кажется, поступаю правильно. Как я могу заставить это работать?

Ответы [ 3 ]

7 голосов
/ 05 мая 2011

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

Однако , в исследованиях я нашел несколько важных моментов, о которых стоит упомянуть:

  1. В одной из статей предлагается использовать строку запроса с добавленным текущим временем. Вы, вероятно, не хотите следовать этому предложению, поскольку ваши файлы никогда не будут кэшироваться. Лучше было бы использовать номера версий контроля версий или хеш-код MD5.
  2. Стив Соудерс (из высокопроизводительных веб-сайтов слава) отмечает, что некоторые веб-прокси никогда ничего не кэшируют с помощью строки запроса. Таким образом, номер версии должен быть встроен в путь к файлу, чтобы обеспечить надлежащее кэширование ваших файлов при доступе через эти прокси. (http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/)
1 голос
/ 04 апреля 2011

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

http://thecrmgrid.wordpress.com/2007/10/22/prevent-caching-of-javascript-include-files-during-development/

http://davidwalsh.name/prevent-cache

0 голосов
/ 04 апреля 2011

1.) Убедитесь, что заголовки ответа для файлов javascript правильные и включают в себя истечения срока действия, управление кэшем и т. Д.

2.) Вы, вероятно, должны добавить версию не как параметр запроса, а как часть имени файла, например, page_v.2.js. Вы можете изменить имена файлов JavaScript во время сборки, например, если вы используете Java. Это то, что я сделал.

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