Спасибо. Самый полезный

м приложении GAE у меня есть следующий обработчик в app.yaml:

- url: /lang/strings.js
  script: js_lang.py

Так что призыв к/lang/strings.js будет фактически отображаться в обработчик запросов js_lang.py, который заполняет ответ какapplication/javascript, Я хочу, чтобы этот ответ кэшировался в браузере, чтобы обработчик запросов вызывался только время от времени (например, когда я «аннулировал» кэш путем импорта/lang/strings.js?v=xxxx когда я разверну новую версию приложения.

Для нормального статического контента естьdefault_expiration элемент, который очень удобен. И приводит к http заголовкам ответа, как это:

Expires: Fri, 01 Apr 2011 09:54:56 GMT
Cache-Control: public, max-age=600

Хорошо, вопрос: есть ли простой способ для меня, чтобы возвратить заголовки, такие как этот, без необходимости явно устанавливать их? В качестве альтернативы, есть ли фрагмент кода, который принимает несколько основных параметров, таких как «days», и производит ожидаемые http-заголовки?

Изменить 12 апреля 2011

Я решил это очень просто установив два заголовкаExpires а такжеCache-Control нравится:

import datetime
thirty_days_in_seconds = 4320000
expires_date = datetime.datetime.now() + datetime.timedelta(days=30)
HTTP_HEADER_FORMAT = "%a, %d %b %Y %H:%M:00 GMT"        

self.response.headers["Expires"] = expires_date.strftime(HTTP_HEADER_FORMAT)
self.response.headers["Cache-Control"] = "public, max-age=%s" % thirty_days_in_seconds

Ответы на вопрос(1)

Ваш ответ на вопрос