Comme tout autre utilisateur de l'utilisateur django, je sers des fichiers statiques. J'ai choisi d'utiliser django-staticfiles pour être prêt pour django 1.3 qui l'intégrera en principe into the core.Django: css référençant des médias dans des fichiers statiques (django dev/1.3/fichiers statiques)
Ma question est plutôt simple: elle fonctionne très bien pour rassembler plusieurs sources multimédia et les référencer de manière uniforme dans les modèles django. Cependant, j'utilise souvent une formation d'image dans Css comme ceci:
#itemname { background-image: url('/path/to/image.png'); }
Ma question est simple - si j'utilise des noms absolus, je dois coder en dur eux. Si j'utilise des noms relatifs, le déplacement vers des URL "sous-répertoire" désactive l'emplacement de la ressource pour ces éléments et ils ne peuvent pas être chargés. Alors, comment puis-je étendre cette solution à CSS? Ladite solution doit éviter:
- Intégration en html css. Personnellement, j'évite cela.
- Utilisation d'URL codées en dur. Cela ne fonctionne pas très bien parce que sur ma configuration locale, j'utilise typiquement 'localhost/project' avec apache pour tester (mod_wsgi) alors que j'ai tendance à utiliser
project.com
pour le déploiement.
Idées?
Le bit dont je ne suis pas sûr, maintenant vous avez répondu - y a-t-il des urls 'background-image' css relatives au fichier css, ou l'URL à partir de laquelle la page est servie?Si le premier, je suis trié, parce que je peux utiliser exactement ce que vous avez décrit. –
Juste testé dehors - relatif semble fonctionner en CSS. Je suis content de ça. Avoir une tique! –
@John, PROJECT_ROOT est également défini quelque part par vous ou il est automatiquement défini par le Django comme votre racine de projet actuelle (où votre manage.py repose). Si vous définissez vous-même PROJECT_ROOT, vous devez le modifier en fonction de son environnement de développement ou de production (car la structure du répertoire) des deux peut être différente. – David