Je suis en train de créer mon application en utilisant Django, et je me demande comment je peux faire en sorte que Django utilise mon fichier CSS ? Quels paramètres dois-je définir pour que Django voie le fichier CSS ?
NB : Sur une machine locale
Je suis en train de créer mon application en utilisant Django, et je me demande comment je peux faire en sorte que Django utilise mon fichier CSS ? Quels paramètres dois-je définir pour que Django voie le fichier CSS ?
NB : Sur une machine locale
Si vous utilisez le serveur de développement, suivez les instructions suivantes Guide pratique du projet Django pour la gestion des fichiers statiques pour configurer vos URL, puis faire référence à vos fichiers multimédias dans le modèle - par exemple, une image dans un dossier d'images à partir de /site_media/images/foo.gif
.
Une petite remarque sur les documents relatifs à Django : assurez-vous de sélectionner les documents correspondant à la version de Django que vous utilisez. Les choses semblent avoir beaucoup changé entre les versions en ce qui concerne les fichiers statiques.
De manière plus générale, vous demandez comment servir un fichier statique à partir de Django. Si vous êtes sous Apache, vous devriez lire http://docs.djangoproject.com/en/dev/howto/deployment/modpython/
Si vous exécutez le serveur de développement (par exemple, sur votre ordinateur portable), lisez le document suivant http://docs.djangoproject.com/en/dev/howto/static-files/
Notez bien le gros, énorme avertissement concernant le serveur de développement Django :
@Chris : Vous avez raison, ma déclaration était un peu ambiguë. Je faisais référence au serveur de développement Django. Bien que je l'aie utilisé à quelques reprises sur notre site de production, ce n'était que pour de courtes périodes de temps pendant le débogage de problèmes épineux.
Merci pour cette clarification, je regardais mes déploiements de django fonctionnant sur apache en me demandant ce que j'avais fait de mal :)
Cela m'a également posé des problèmes pendant un certain temps (erreurs 404 not found). La partie manquante pour moi a été de modifier le fichier STATICFILES_DIRS
dans settings.py pour me donner ceci :
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)
Il a ensuite récupéré mes fichiers CSS dans un dossier appelé " media " qui se trouvait au niveau supérieur de mon projet django.
J'avais aussi :
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'
(assurez-vous que vous avez le premier /
ci-dessus dans STATIC_URL
)
Bien sûr, comme indiqué ci-dessus, vous devez inclure le fichier CSS dans vos fichiers html. Je l'avais :
<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
Quels paramètres dois-je définir pour que Django voie le fichier css ?
Aucun.
Assurez-vous que votre modèle inclut le fichier CSS (comme le fait le HTML standard) et placez le fichier CSS sur le serveur de médias.
Pour clarifier : avec Django, il est fortement recommandé de servir tous vos médias (tout ce qui n'est pas du html dynamique) à partir d'une instance de serveur différente. La façon dont vous mettez en œuvre cette recommandation vous appartient, mais la plupart des gens créent un sous-domaine.
La documentation officielle de Django ne m'a pas aidé. J'espère que l'article de blog " Django : Comment servir des fichiers statiques " aide certains d'entre vous.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.