Ich habe eine Vorlage mit verschiedenen Einträgen, die der Autor bearbeiten/löschen kann. Benutzer können ihre Beiträge löschen, indem sie auf Löschen klickenDeaktivieren Sie den Cache auf einer bestimmten Seite mit Flask
Nach dem Löschen wird der Benutzer auf die Seite Einträge weitergeleitet, aber das Element ist immer noch da, und die Seite muss erneut geladen werden, um den Löscheffekt anzuzeigen. Wenn ich das Caching deaktivieren das Problem verschwindet, aber ich möchte wirklich Caches haben in allen anderen Seiten ...
diese Tags hinzugefügt hat nicht funktioniert, ich glaube, mein Browser sie einfach ignoriert
<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" />
Ich aktiviere den Cache durch:
@app.after_request
def add_header(response):
response.headers['X-UA-Compatible'] = 'IE=Edge,chrome=1'
response.headers['Cache-Control'] = 'public, max-age=600'
return response
Gibt es eine Möglichkeit, ich kann es für eine bestimmte Seite deaktivieren?
bearbeiten
wie vorgeschlagen habe ich versucht, einen Wrapper mit:
def no_cache(f):
def new_func(*args, **kwargs):
resp = make_response(f(*args, **kwargs))
resp.cache_control.no_cache = True
return resp
return update_wrapper(new_func, f)
und wickeln Sie die Seite i in einem @no_cache Dekorateur wihtout Cache wollen, immer noch kein Glück gehabt ...
Dank für den Hinweis auf, dass ich nicht Cache-Control-Header hinzufügen Wenn sie schon da sind, habe ich nicht daran gedacht ... Ich habe versucht, wie Sie vorgeschlagen, mit einem Wrapper versuchen und versuchen, nur die Antwortheader hinzufügen, aber der Cache ist immer noch da aus irgendeinem Grund ... –
@LucaBrozzi, überprüfen Sie, ob Sie die gewünschten Header in den Chrome/Mozilla-Entwicklungstools erhalten. Siehe z.B. Diese SO Antwort, wenn Sie nicht wissen, wie es geht: http://stackoverflow.com/questions/4423061/view-http-headers-in-google-chrome. Wenn Sie deutlich sehen, dass es keinen 'Cache-Control: no-cache'-Header gibt, ist es immer noch ein Problem mit überschriebenen Headern in Ihrem '@ app.after_request'-Handler. – NikitaBaksalyar
ich hatte vergessen, eine Zeile zu ändern, Ihre Lösung war richtig, vielen Dank –