Как я могу получить контроль над поведением кэширования Google App Engine в WebKit (etags сошел с ума)?

Ситуация: запуск сайта Google App Engine с параметром default_expiration моего статического контента, установленным на «14d»

Проблема: в Chrome и Safari, посещение URL-адреса (, а не перезагрузка, просто поместив курсор в адресную строку и нажав Enter), запускается тонна запросов с заголовками If-None-Match. Как и ожидалось, ответы всегда 304 Not Modified. Я могу наблюдать, как эти запросы запускаются в отладочном прокси, таком как Charles или Fiddler.

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

Мы используем стандартную систему «статическое содержимое кеша в течение очень долгого времени, мы позаботимся о добавлении изменений? Version = {version} в наши строки запроса, когда нам нужно перебрать систему кеширования», поэтому мы действительно хотели бы избежать 304.

Вера: Я думаю, это вызвано заголовком etag, который движок приложения отправляет с каждым ответом статического содержимого. SDK движка приложений не отправляет этот заголовок, и я не вижу такого поведения 304, когда возитесь с SDK.

Есть какой-нибудь совет? Можно ли отключить etags для статического содержимого движка приложения?

Обновлено с помощью примера статического содержимого: http://www.khanacademy.org/stylesheets/shared-package/compressed.css

23
задан kamens 31 January 2011 в 14:12
поделиться