Projet

Général

Profil

Development #24676

URL stable pour les assets prédéfinis

Ajouté par Frédéric Péters il y a presque 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
20 juin 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Révision 8fdd36ee (diff)
Ajouté par Frédéric Péters il y a presque 6 ans

general: give assets a stable URI (#24676)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 6 ans

#2

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...?

#3

Mis à jour par Frédéric Péters il y a presque 6 ans

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)

#4

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'

#5

Mis à jour par Frédéric Péters il y a presque 6 ans

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).

#6

Mis à jour par Thomas Noël il y a presque 6 ans

Ack

#7

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)
#8

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

Formats disponibles : Atom PDF