2010-05-27 4 views
1

dans mon settings.py je les suivantes:problème url relatif Django de

PROJECT_DIR = os.path.dirname(os.path.realpath(__file__)) 
MEDIA_ROOT = os.path.join(PROJECT_DIR,'templates') 
MEDIA_URL = '/templates/' 

En urls.py je (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

Et mon base.html a la directive suivante:

<link media="screen" href="site_media/bat/design/css/bat.css" type="text/css" rel="stylesheet" /> 

Lors de la première entrée dans l'application (par exemple, http://localhost), cette feuille de style est très bien chargée. Cependant, sur une demande ultérieure http (en urls.py il est (r'^assist/bat/', include('assist.bat.urls')), à un autre modèle de cette directive entraîne l'erreur suivante:

The stylesheet http://localhost/assist/bat/site_media/bat/design/css/bat.css was not loaded because its MIME type, "text/html", is not "text/css."

Comme vous pouvez le voir, cette directive css obtient transformé en une url relative qui est complètement incorrect. Si je retire /assist/bat de cette URL, il fonctionne très bien. alors, comment puis-je configurer mon application pour ne pas transformer cette façon?

Merci d'url, Igor

Répondre

3

sauvage deviner: href="site_media/bat/design/css/bat.css" devrait être href="/site_media/bat/design/css/bat.css", les URL commençant sans barre oblique devant eux sont résolues par rapport à l'URL actuelle.

+0

Merci Tomasz, c'est ce qu'il a fait. J'ai trouvé ce fil sur Google qui traite d'un problème similaire: http://groups.google.com/group/django-users/browse_thread/thread/0f50284640b855d3?pli=1 Je pense que je comprends maintenant. –