2010-05-27 29 views
1

在我的settings.py我有以下幾點:Django的site_media相對URL問題

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

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

而且我base.html文件有下列指令:

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

第一次進入應用程序(即http://localhost)這個樣式表被加載得很好。然而,在隨後的HTTP請求(在urls.py它是(r'^assist/bat/', include('assist.bat.urls')),另一個模板以下錯誤這個指令的結果:

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."

正如你所看到的,這個CSS指令被演變成一個相對URL是完全不正確。如果我刪除/從URL協助/蝙蝠,然後它工作得很好。我那麼如何才能建立我的應用程序不變形網址的這種方式?

感謝, 伊戈爾

回答

3

野生猜測:href="site_media/bat/design/css/bat.css"應該是href="/site_media/bat/design/css/bat.css",在他們面前沒有斜槓的啓動網址相對於當前網址解析。

+0

感謝Tomasz,做到了。實際上,我在Google上發現了這個討論類似問題的主題:http://groups.google.com/group/django-users/browse_thread/thread/0f50284640b855d3?pli=1 我想我現在就明白了。 – 2010-05-27 16:47:59