Django médias Url dans les fichiers CSS
Dans les modèles django, il est courant d'effectuer les opérations suivantes:
<img src="{{ MEDIA_URL }}/img/someImage.jpg">
Comment voulez-vous accomplir cela dans un fichier CSS qui n'est pas servi comme modèle?
.someClass {
/* can't do this this */
background: url("{{ MEDIA_URL }}/img/someImage.jpg");
/* either this */
background: url("http://media.domain.com/img/someImage.jpg");
/* or this */
background: url("/django_static_media/img/someImage.jpg");
/* can't do both... what to do? */
}
J'ai besoin de la capacité à servir de mes fichiers soit par les médias sous-domaine, ou au cours de travailler hors connexion et de les servir directement comme django vue statique. Mais les fichiers CSS sont un problème car ils ne sont pas traités comme des modèles et je ne peux pas utiliser le MEDIA_URL
variable de contexte.
Quelle est la solution?
Edit: je note que le problème se pose depuis mes statique des fichiers multimédia sont en fait situés sur un support distinct sous-domaine, ainsi en niant l'utilisation de chemins relatifs. l'ai Eu, merci!
Vous devez vous connecter pour publier un commentaire.
Où est ton fichier css servi à partir de? Ce n'est généralement pas un problème en commun la structure des médias tels que:
(ou similaire) permet une relative chemins d'accès de fichier pour les images, par exemple:
Si vous n'êtes pas prêt à changer votre dossier media structure pour accueillir relative chemins d'accès aux fichiers, vous n'avez pas d'autre solution que de remplacer déclarations css à partir de l'intérieur du modèle, à l'aide d'un secondaire fichier css en mode hors connexion:
Bien sûr, la première option est beaucoup plus propre.
Désolé, vous n'aimez pas la réponse.
J'ai eu le même problème:
Il n'y a pas de moyen facile de le faire avec statique servi fichiers CSS.
Ce que je fais:
{{MEDIA_URL}} (+RequestContext
contextes pour les vues)
(1) modifie chaque fichier css est temporairement pour fixer
'url("/media " à " url("s3.mydomain.com/media" et
(2) mises à jour/uploads mon /répertoire de médias à Amazon S3
Je puis aller à la production et à faire un svn update & touchez le fichier WSGI & valider
Est d'utiliser des chemins relatifs (pour les fichiers d'image) dans vos fichiers CSS pas une option viable pour vous?
Si vous souhaitez utiliser des directives de modèle dans un fichier, pourquoi n'est-il pas servi par l'intermédiaire d'un modèle?