Development #24676
URL stable pour les assets prédéfinis
0%
Description
Avec #24453 j'ai pu commencer à utiliser des ressources configurables par l'admin dans les pages et cellules combo, maintenant j'aimerais en profiter aussi depuis w.c.s. (basiquement l'illustration définie côté portail pour pointer sur une démarche, il faudrait qu'elle soit reprise sur la page de la démarche).
Là-dessus, mon idée c'est de pouvoir appeler (genre depuis un <img/>, ou un bout de CSS) "/assets/<clé de l'asset>" et que ça retourne le fichier (ou une 404 s'il n'existe pas).
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-general-give-assets-a-stable-URI-24676.patch 0001-general-give-assets-a-stable-URI-24676.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a presque 6 ans
Pas très fan, d'abord parce que que static.serve "is grossly inefficient and probably insecure, so it is unsuitable for production" (https://docs.djangoproject.com/en/2.0/howto/static-files/). Je me dis qu'un redirect serait plus propre, même si moins "efficace". Peut-être un 301 avec expiration sur ~5 minutes...?
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-general-give-assets-a-stable-URI-24676.patch 0001-general-give-assets-a-stable-URI-24676.patch ajouté
J'avais hésité, voici la version en redirect simple. (sans 301, quand il faudra optimiser on pourra plutôt voir avec une redirection interne à nginx, X-Accel-Redirect)
Mis à jour par Thomas Noël il y a presque 6 ans
Je pense qu'on peut écrire plus explicitement « def serve_asset(request, key): »
Et dans le test, continuer en suivant le 302 avec un truc genre assert app.get(resp['location'])['content-type'] == 'text/png'
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-general-give-assets-a-stable-URI-24676.patch 0001-general-give-assets-a-stable-URI-24676.patch ajouté
Sans la modification au test parce que les /media/ n'y sont pas servis. (curieuse affaire même en mettant DEBUG = True dans tests/settings.py l'URL n'est pas déclarée, il faudrait sans doute remonter le DEBUG = True dans le settings.py originel et je n'ai pas envie).
Mis à jour par Frédéric Péters il y a presque 6 ans
- Statut changé de En cours à Résolu (à déployer)
commit 8fdd36ee3181e243e7475e354491533c3ba9262c Author: Frédéric Péters <fpeters@entrouvert.com> Date: Wed Jun 20 20:29:56 2018 +0200 general: give assets a stable URI (#24676)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
general: give assets a stable URI (#24676)