Google App Engine: как отключить кеш на «статических» файлах или сделать кеш умным - PullRequest
13 голосов
/ 15 апреля 2010

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

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

Спасибо!

update- Получается, что в Chrome Dev (по крайней мере, для Mac) есть проблемы с кэшированием, возвращаясь к Chrome Beta, все это исправляет. Ответы все еще были полезны, спасибо

Ответы [ 2 ]

13 голосов
/ 15 апреля 2010

На основе документов вы можете указать срок действия кэша всего приложения:

Если не указано иное, веб-браузеры сохраняют файлы, которые они загружают с веб-сайта, в течение ограниченного периода времени. Вы можете определить глобальный период кэширования по умолчанию для всех статических обработчиков файлов для приложения, включив элемент default_expiration, элемент верхнего уровня. Вы также можете настроить длительность кэша для определенного статического обработчика файлов. (Обработчики сценариев могут устанавливать длительность кэша, возвращая соответствующие заголовки HTTP в браузер.)

default_expiration

Время, в течение которого статический файл, обслуживаемый обработчиком статических файлов, должен кэшироваться в браузере пользователя, если обработчик не указывает свое собственное истечение срока действия. Значение представляет собой строку чисел и единиц, разделенных пробелами, где единицами измерения могут быть d для дней, h для часов, m для минут и s для секунд. Например, «4d 5h» устанавливает срок действия кэша равным 4 дням и 5 часам после первой загрузки файла браузером.

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

... и если вы хотите указать срок действия для каждого отдельного каталога:

истечение

Время, в течение которого статический файл, обслуживаемый этим обработчиком, должен кэшироваться в браузере пользователя. Значение представляет собой строку чисел и единиц, разделенных пробелами, где единицами измерения могут быть d для дней, h для часов, m для минут и s для секунд. Например, «4d 5h» устанавливает срок действия кэша равным 4 дням и 5 часам после первой загрузки файла браузером.

Попробуйте установить для них значение 0d0h или 1 с и посмотрите, отключает ли оно кэширование полностью.

12 голосов
/ 15 апреля 2010

Обычная практика, используемая крупными сайтами, заключается в постоянном кэшировании документов, но включении уникального идентификатора, основанного на версии или дате выпуска, в URL для вызова .js или .css. Например:

<script type="text/javascript" src="static/util.js?version=20100310"></script>

Таким образом, вы получаете оптимальное кэширование, а также постоянно обновляемые файлы. Единственная хитрость заключается в том, чтобы выяснить, как включить актуальный номер версии в ваш URL-адрес, который можно автоматизировать в зависимости от среды развертывания.

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