Подтвердить что ты не робот

Google App Engine: как отключить кеш на "статических" файлах или сделать кеш-смарт

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

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

Спасибо!

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

4b9b3361

Ответ 1

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

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

default_expiration

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

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

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

действия

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

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

Ответ 2

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

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

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