Django: comment vous servir des médias / feuilles de style et le lien à l'intérieur de modèles

Variations de cette question ont été posées, mais je suis toujours incapable d'obtenir mes feuilles de style pour charger correctement lors de mes modèles sont rendus.

Je suis d'essayer de servir statique des médias de l'Django processus au cours du développement - ce qui est fortement déconseillé dans la production, je suis au courant. Je vais poster ma configuration et mon modèle, et j'espère que quelqu'un peut m'aider à comprendre où je vais mal.

Noter que j'ai essayé de suivre l'exemple du projet Django site, mais il ne mentionne pas comment consulter vos feuilles de style à partir d'un modèle. J'ai aussi essayé beaucoup de différentes variations de la même chose, donc mon code/paramètres peut être un peu hors de ce qui est décrit.

settings.py

MEDIA_ROOT = 'D:/Dev Tools/django_projects/dso/media'
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/media/'

urls.py

from django.conf.urls.defaults import *
from django.conf import settings
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/(.*)', admin.site.root),
    (r'^ovramt/$', 'dso.ovramt.views.index'),
)

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
    )

Dans mon template:

<head> 
<title> {% block title %} DSO Template {% endblock %} </title> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<link rel="stylesheet" type="text/css" href="../media/styles.css">
</head>

Je vous assure, les fichiers (modèles/media) sont dans le bon répertoire sur mon système de fichiers. Si il n'y a aucune information supplémentaire j'ai besoin de fournir, s'il vous plaît poster un commentaire.


Edit:

L'un des problèmes que j'avais était l'utilisation d'un '/' ajoutant à mes liens. Si la barre oblique est ajouté, le lien est ouvert à partir de la racine du site. Si il n'y a pas de barre oblique, le lien est ouvert dans le niveau actuel. Un exemple:

www.example.com/application a un lien "/app2/et un lien "app3/".

app2 sera ouvert à partir de www.example.com/app2/et app3 sera ouvert à partir de www.example.com/application/app3/. C'était déroutant, moi, je pense.

  • Une question; avez-vous essayé de chargement "http://<votre-serveur-probablement-localhost>/media/styles.css" directement à partir de votre navigateur?
  • Je suis le seul qui trouve ça idiot que vous devez sauter à travers tous ces cerceaux de test/preview CSS et les images en cours de développement avec Django? Bien sûr, vous ne voulez pas faire dans la production et l'utilisation d'un véritable serveur web, mais pour le développement, vous avez besoin de voir des styles/images afin de donner un bon aperçu.
  • Il y avait vraiment pas beaucoup de sauter à travers des cerceaux. Je viens de tomber là où je ne devrais pas avoir.
  • vous avez dit "Si la barre oblique est ajouté, le lien est ouvert à partir du niveau inférieur." mais en fait, slash fait charger à partir du niveau supérieur. Donc, à partir de site.com/a/b/c si il y a un lien de /d, il va aller à l'site.com/d.
InformationsquelleAutor Josh Smeaton | 2009-01-15