2012-02-15 8 views
0

GAEアプリのユーザーが戻るボタンをクリックすると、ページのキャッシュバージョンが表示されないようにする必要があります。つまり、そのURLにPython getまたはpostコードが必要です実行される。Google App Engineでのページキャッシュの防止

+0

すべてのお返事ありがとう!私はこの質問を主にインターネットのドキュメンテーションがプラグマの設定などは効果がなく、より強力な(特定されていない)サーバ側の解決策が必要であると示唆したためです。これらのソリューションは非常に信頼性がありますか? – Tr3y

+0

私がリンクしている答えのアップフォントの数は、それが信頼できることを示しているようです。 ;)私は同様の要求を私のアプリケーションにも持っています(私はクライアントブラウザでキャッシュしてはならないREST APIを持っています)ので、私は答えの勧告に従いました。自分で試し、アプリエンジンのダッシュボードのログを監視して動作することを確認することをおすすめします。キャッシュされたページは要求として表示されません。HTTPステータス304(Not Modified)が応答として表示されますが、表示されます。 –

答えて

6

chachanが提供する答えは、すべてのブラウザで機能するとは限りません。より完全な答えはthis answerにあります。基本的には、これらのヘッダーをすべて設定する必要があります。

<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate"> 
<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Expires" content="0"> 

いつもサーバーからページを取得するようブラウザに指示する必要があります。

+0

ありがとうございます。これは、私がそれをテストすることができたすべてのケースで機能するようです。 – Tr3y

2

この質問のようなものは、Google App Engineとはまったく関係がありません。

<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate"> 

お手伝いを希望:が、私はこれを見つけました。

3

キャッシュをメタタグに設定することは、あなたが探しているものではなく、httpヘッダーを設定する方が便利です。あなたはPythonで非常に簡単に行うことができますこの:

self.response.headers [ "プラグマ"] = "キャッシュなし"

self.response.headers [ "のCache-Control"] = "なし030、ポストチェック= 0 "

self.response.headers [" Expires "] =" Thu、1994年12月1日16時00分 "

グールがここレスポンスクラスを使用する方法についての素晴らしいドキュメントがあります:http://code.google.com/appengine/docs/python/tools/webapp/responseclass.html