На YouTube появилось это новое видео, демонстрирующее силу EdgeCaching в архитектуре GAE, и в этом конкретном месте видео они демонстрируют, насколько легко его использовать: http://www.youtube.com/смотреть?v=QJp6hmASstQ#t=11m12
К сожалению, это не так просто...
Я хочу включить пограничное кэширование, используя структуру webapp2, предоставленную Google.
Я звоню:
self.response.pragma = 'Public'
self.response.cache_expires(300)
но кажется, что это перекрывается чем-то другим.
Заголовок, который я получаю:
HTTP/1.1 200 OK
Pragma: Public
Cache-Control: max-age=300, no-cache
Expires: Sat, 23 Feb 2013 19:15:11 GMT
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
X-AppEngine-Estimated-CPM-US-Dollars: $0.000085
X-AppEngine-Resource-Usage: ms=39 cpu_ms=64
Date: Sat, 23 Feb 2013 19:10:11 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, must-revalidate
Vary: Accept-Encoding
Server: Google Frontend
Content-Length: 600
Я использую ndb верхнего уровня:
app = ndb.toplevel(webapp2.WSGIApplication(...
Я попробовал методы, описанные здесь, но они, похоже, не применимы к webapp2: http://code.google.com/p/googleappengine/issues/detail?id=2258#c14
Я также просмотрел этот пост: https://groups.google.com/d/topic/webapp2/NmHXoZZSVvo/discussion
Пытался установить все вручную, безрезультатно. Что-то переопределяет мои настройки кеша.
Есть ли способ заставить его работать с webapp2? Любой другой вариант приветствуется.
EDIT: я использую URL-адрес с префиксом версии: http://version.appname.appspot.com, и это, вероятно, причина моей проблемы.