À l'aide de Flacon, comment puis-je modifier l'entête Cache-Control pour TOUTES les sorties?
J'ai essayé d'utiliser cette
@app.after_request
def add_header(response):
response.headers['Cache-Control'] = 'max-age=300'
return response
Mais cela provoque un double-tête Cache-Control à apparaître. Je ne veux max-age=300, PAS le max-age=1209600 ligne!
$ curl -I http://my.url.here/
HTTP/1.1 200 OK
Date: Wed, 16 Apr 2014 14:24:22 GMT
Server: Apache
Cache-Control: max-age=300
Content-Length: 107993
Cache-Control: max-age=1209600
Expires: Wed, 30 Apr 2014 14:24:22 GMT
Content-Type: text/html; charset=utf-8
Cela pourrait être un sale chemin, mais vous pouvez toujours vérifier si l'en-tête "Cache-Control" qui existe déjà et de les supprimer si ne puis ajoutez votre en-tête. Quelque chose comme " si "Cache-Control" en réponse.les en-têtes: del réponse.les en-têtes['Cache-Control']
OriginalL'auteur wuxiekeji | 2014-04-16
Vous devez vous connecter pour publier un commentaire.
Utiliser le
réponse.cache_control
de l'objet; c'est unResponseCacheControl()
exemple vous permettant de définir les différents cache des attributs directement. En outre, il va faire en sorte de ne pas ajouter des en-têtes en double si il y en a un qui existe déjà.response.cache_control.public = True
.Génial que vous avez lié à plusieurs sections de la doc, c'était vraiment utile
OriginalL'auteur Martijn Pieters
Vous pouvez définir la valeur par défaut pour tous les fichiers statiques lorsque vous créez le Flacon d'application:
Notez que si vous modifiez
request.cache_control
dansafter_request
, comme dans la accepté de répondre, cela permettra également de modifier laCache-Control
- tête pour les fichiers statiques et peut remplacer le comportement que vous définissez comme je l'ai montré ci-dessus. Je suis actuellement en utilisant le code suivant pour complètement désactiver la mise en cache de contenu généré dynamiquement, mais pas les fichiers statiques:Pas complètement sûr que c'est le meilleur moyen, mais ça fonctionne pour moi jusqu'à présent.
if 'Cache-Control' not in ...
peu, très intelligent pour encourager les gens à vérifier que!OriginalL'auteur aldel