Réponses:
Si vous utilisez le serveur de développement, suivez le guide pratique du projet django pour la gestion des fichiers statiques afin de configurer vos URL, puis référencez vos fichiers multimédias dans le modèle - par exemple, une image dans un dossier d'image à partir de /site_media/images/foo.gif
.
Plus généralement, vous demandez comment servir un fichier statique depuis Django. Si vous utilisez 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 http://docs.djangoproject.com/en/dev/howto/static-files/
Notez le gros avertissement concernant le serveur de développement Django:
Cela m'a aussi causé des problèmes pendant un certain temps (404 erreurs non trouvées). Le bit manquant pour moi était de modifier le STATICFILES_DIRS
tuple 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('\\','/'),
)
Cela a ensuite ramassé mes fichiers CSS dans un dossier appelé 'media' qui était 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 début /
ci-dessus STATIC_URL
)
Bien sûr, comme indiqué ci-dessus, vous devez avoir le fichier CSS correctement inclus à partir de vos fichiers html. J'ai eu:
<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
.replace('\\','/')
est inutile.
Quels paramètres dois-je faire 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 multimédia.
Pour clarifier: avec Django, il est fortement recommandé de diffuser 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 implémentez cela dépend entièrement de vous, mais la plupart des gens créent un sous-domaine.
La documentation officielle de Django ne m'a pas aidé. J'espère que le billet de blog " Django: Comment servir des fichiers statiques " aidera certains d'entre vous.
Eh bien, le moyen le plus simple d'utiliser le CSS avec django est de l'ajouter à vos modèles en tant que fichiers statiques.
Mais c'est un peu comme ajax, je n'ai rien trouvé qui dise comment l'inclure de manière standard.
Il existe un module de compresseur css pour django si vous souhaitez optimiser sa taille.