Comments on: Comment servir les fichiers statiques avec Django en dev et en prod http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/ Deux développeurs en vadrouille qui se sortent les doigts du code Wed, 05 Feb 2014 12:15:31 +0000 hourly 1 http://wordpress.org/?v=3.3.1 By: foxmask http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-3111 foxmask Tue, 13 Nov 2012 15:39:54 +0000 http://sametmax.com/?p=2706#comment-3111 @sam, merci, parfait ! @sam, merci, parfait !

]]>
By: Sam http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-3106 Sam Tue, 13 Nov 2012 15:07:21 +0000 http://sametmax.com/?p=2706#comment-3106 @foxmask: wooops, j'avais pas vu ton comment foxmask, sorry. Donc, django_quicky ne sert rien par défaut, il faut rajouter le middleware 'django_quicky.middleware.StaticServe'. Dans ce cas oui, tous les fichiers statiques sont servis par Django. Idéalement on le met dans le fichier local_settings.py Moi j'utilise une troisième voie: je met 'django_quicky.middleware.StaticServe' dans tous les cas, et j'override en prod l'url des fichier statiques avec nginx. Mais faut vraiment faire gaffe à pas se planter dans ce cas, c'est pour ça que je ne recommande pas cette méthode. @foxmask: wooops, j’avais pas vu ton comment foxmask, sorry.

Donc, django_quicky ne sert rien par défaut, il faut rajouter le middleware ‘django_quicky.middleware.StaticServe’. Dans ce cas oui, tous les fichiers statiques sont servis par Django. Idéalement on le met dans le fichier local_settings.py

Moi j’utilise une troisième voie: je met ‘django_quicky.middleware.StaticServe’ dans tous les cas, et j’override en prod l’url des fichier statiques avec nginx. Mais faut vraiment faire gaffe à pas se planter dans ce cas, c’est pour ça que je ne recommande pas cette méthode.

]]>
By: Sam http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-3104 Sam Tue, 13 Nov 2012 14:44:02 +0000 http://sametmax.com/?p=2706#comment-3104 Quand un projet est bien lancé et devient sérieux, ça a du sens. Mais quand on démarre un projet, quand il s'agit d'un petit projet ou quand la deadline est serrée, mirrorer la production c'est du boulot en plus. Et c'est aussi un frein pour les débutants. C'est la même problématique pour la base de données, le moteur de recherche, le gestionnaire de cache, le message broker, etc. Pour tous ces composants, on s'expose au risque d'avoir des différences de comportement en prod (qui n'a jamais eu des surprises de type ou de taille de nom de colonne en passant de sqlite à mysql). Mais en même temps, un setup complet ? C'est la journée de perdue. Peut être que le tout VM peut résoudre ça. Quand un projet est bien lancé et devient sérieux, ça a du sens. Mais quand on démarre un projet, quand il s’agit d’un petit projet ou quand la deadline est serrée, mirrorer la production c’est du boulot en plus.

Et c’est aussi un frein pour les débutants.

C’est la même problématique pour la base de données, le moteur de recherche, le gestionnaire de cache, le message broker, etc. Pour tous ces composants, on s’expose au risque d’avoir des différences de comportement en prod (qui n’a jamais eu des surprises de type ou de taille de nom de colonne en passant de sqlite à mysql). Mais en même temps, un setup complet ? C’est la journée de perdue.

Peut être que le tout VM peut résoudre ça.

]]>
By: Samuel Martin http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-3091 Samuel Martin Tue, 13 Nov 2012 05:46:48 +0000 http://sametmax.com/?p=2706#comment-3091 Je serais tenté de dire que même en local il est préférable de déployer la même architecture qu'en production. Aussi chez moi même en local je sers les medias et les static via Nginx. Le comportement est proche de la prod et donc pas d'oubli. Je serais tenté de dire que même en local il est préférable de déployer la même architecture qu’en production. Aussi chez moi même en local je sers les medias et les static via Nginx. Le comportement est proche de la prod et donc pas d’oubli.

]]>
By: foxmask http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-2814 foxmask Fri, 02 Nov 2012 03:40:35 +0000 http://sametmax.com/?p=2706#comment-2814 @sam merci effectivement c'est horripilant j'ai tourné en rond, je ne voyais pas ce qui ne le satisfaisait pas. Bien entendu c'est pour avoir un premier aperçu de l'appli avant que le contenu static ne soit géré par le serveur HTTP. avec django_quicky le contenu static est géré par Django du coup ? ou les 2 (avec front HTTP et/ou django) ? @sam merci

effectivement c’est horripilant j’ai tourné en rond, je ne voyais pas ce qui ne le satisfaisait pas. Bien entendu c’est pour avoir un premier aperçu de l’appli avant que le contenu static ne soit géré par le serveur HTTP.

avec django_quicky le contenu static est géré par Django du coup ? ou les 2 (avec front HTTP et/ou django) ?

]]>
By: Sam http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-2810 Sam Fri, 02 Nov 2012 02:36:28 +0000 http://sametmax.com/?p=2706#comment-2810 @foxmask: <code>staticfiles_urlpatterns()</code> check en interne DEBUG et se désactive si on est sur False. Les dev de Django considère que c'est une feature, j'ai trouvé trouver ça agaçant. Deux solutions: Soit tu sers les fichiers à l'ancienne: <pre lang="python"> urlpatterns += patterns('', (r'%s/(?P<path>.*)$' % settings.MEDIA_URL.strip('/'), 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), )</pre> Soit tu installe Django_quicky et tu utilise le middleware qui sert les static files. Il fait tout automatiquement, y a juste une ligne à rajouter dans le settings, et il sert aussi bien les medias, que les fichiers statiques des tes apps et celles de l'admin, dans tous les cas de figures. Bien entendu, dans le cas ou on active le service des fichiers statiques avec DEBUG = False, il faut faire très attention à la mise en production de bien servir les fichiers par le serveur front end et pas Django, car on le s'en rendra pas compte facilement. C'est facile de l'oublier. @foxmask:

staticfiles_urlpatterns() check en interne DEBUG et se désactive si on est sur False.

Les dev de Django considère que c’est une feature, j’ai trouvé trouver ça agaçant.

Deux solutions:

Soit tu sers les fichiers à l’ancienne:

    urlpatterns += patterns('',
        (r'%s/(?P<path>.*)$' % settings.MEDIA_URL.strip('/'),
         'django.views.static.serve',
         {'document_root': settings.MEDIA_ROOT}),
    )

Soit tu installe Django_quicky et tu utilise le middleware qui sert les static files. Il fait tout automatiquement, y a juste une ligne à rajouter dans le settings, et il sert aussi bien les medias, que les fichiers statiques des tes apps et celles de l’admin, dans tous les cas de figures.

Bien entendu, dans le cas ou on active le service des fichiers statiques avec DEBUG = False, il faut faire très attention à la mise en production de bien servir les fichiers par le serveur front end et pas Django, car on le s’en rendra pas compte facilement. C’est facile de l’oublier.

]]>
By: foxmask http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-2807 foxmask Fri, 02 Nov 2012 01:09:50 +0000 http://sametmax.com/?p=2706#comment-2807 Ah heu ok Ah heu ok

]]>
By: Max http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-2803 Max Thu, 01 Nov 2012 23:53:59 +0000 http://sametmax.com/?p=2706#comment-2803 Moi quand je passe la 3eme sur ma 404 j'ai les pignons qui craquent, une idée ? Moi quand je passe la 3eme sur ma 404 j’ai les pignons qui craquent, une idée ?

]]>
By: foxmask http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-2801 foxmask Thu, 01 Nov 2012 22:07:11 +0000 http://sametmax.com/?p=2706#comment-2801 Quand je passe DEBUG à False et tape <code> python manage.py runserver </code> je n'ai plus accès à mon contenu static (que des 404) alors meme que : <code> python manage.py findstatic css/monfichier.css </code> est trouvé, une suggestion ? Quand je passe DEBUG à False et tape

python manage.py runserver

je n’ai plus accès à mon contenu static (que des 404) alors meme que :

python manage.py findstatic css/monfichier.css

est trouvé, une suggestion ?

]]>
By: bussiere http://sametmax.com/comment-servir-les-fichiers-statiques-avec-django-en-dev-et-en-prod/#comment-2592 bussiere Tue, 23 Oct 2012 14:31:21 +0000 http://sametmax.com/?p=2706#comment-2592 Merci de l'article Merci de l’article

]]>