キャッシュに関する問題があります。私は1つのフレームを読み取り、ディスクに保存してからブラウザーウィンドウに表示する非常に小さなWebアプリケーションを実行しています。
おそらく最善の解決策ではありませんが、この読み取りフレームを同じ名前で保存するたびに、ブラウザはキャッシュします。
HTMLメタタグを使用しようとしました-成功しませんでした:
<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" />
また、私はこれを試しました(フラスコ固有):
resp.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
resp.headers["Pragma"] = "no-cache"
resp.headers["Expires"] = "0"
これは私がresp
ヘッダーを変更しようとした方法です:
r = make_response(render_template('video.html', video_info=video_info))
r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
r.headers["Pragma"] = "no-cache"
r.headers["Expires"] = "0"
それでも、Google ChromeとSafariはキャッシュを行います。
ここで何が問題なのでしょうか?
前もって感謝します
OK、
最後にこれでうまくいきました:
@app.after_request
def add_header(r):
"""
Add headers to both force latest IE rendering engine or Chrome Frame,
and also to cache the rendered page for 10 minutes.
"""
r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
r.headers["Pragma"] = "no-cache"
r.headers["Expires"] = "0"
r.headers['Cache-Control'] = 'public, max-age=0'
return r
これを追加すると、この関数はリクエストが完了するたびに呼び出されます。 こちら をご覧ください
このヘッダーの上書きがページハンドラーから機能しなかった理由を誰かが説明してくれたら嬉しいです。
ありがとうございました。
常に同じ問題がある場合、FlaskはJSファイルとCSSファイルの更新を確認できませんでした。デフォルトでは、Flaskはこの値を0に設定すると、次のような問題を解決できます。
app = Flask(__name__)
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
詳細については、 そのドキュメント を参照してください。