2009-07-02 57 views
20

我建立一個Django應用程序,我不能讓模板來查看CSS文件...我的settings.py文件看起來像:Django的模板不能看到CSS文件

MEDIA_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'media') 
MEDIA_URL = '/media/' 

我已經得到中/ mysite的的CSS文件/媒體/ CSS /和模板代碼包含:

<link rel="stylesheet" type="text/css" href="/media/css/site_base.css" />` 

然後,在url.py文件我有:

# DEVELOPMENT ONLY 
(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root': '/media'}), 

但發展SER ver服務於純HTML(沒有樣式)。我究竟做錯了什麼?

-

好的 - 我根據你們家裏的人說過的來工作。答案是:

settings.py:

MEDIA_ROOT = 'd://web//mysite//media//' #absolute path to media 
MEDIA_URL = '/mymedia/' #because admin already using /media 

site_base.html:

<link rel="stylesheet" type="text/css" href="/mymedia/css/site_base.css" /> 

urls.py

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

瞧!有用。

+1

好吧......給予好評幫我擺脫這種困境,但...有**在`/ media /`裏面沒有**`/ mymedia /`目錄...那麼,它如何在`href`中要求?它在哪裏看? – Droogans 2012-03-15 18:51:54

回答

13
在你的urls.py「唯發展」塊則需要更改

(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root': '/media'}), 

...

(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root': settings.MEDIA_ROOT}), 
0

我有,當我試圖讓jQuery的類似的問題上班。我的修復是爲我的Apache httpd.conf文件添加一個別名,該文件指向包含.js的文件夾。你可以用你的CSS文件夾做同樣的事情。

2

在開發服務器,我想作弊,並把下面我urls.py

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

這樣,任何項目下的「/包括」文件夾中是開發服務器服務器。您可以將其更改爲「/ media」。

5

ADMIN_MEDIA_PREFIX默認情況下設置爲\media\,可能是「竊取」路徑。更改該設置,或對非管理員媒體使用不同的設置 - 例如site_mediaassets

+0

謝謝丹尼爾!我已經把我的頭髮拉出來了!這不是我第一次發現你對django問題的回答非常有幫助,所以我想這只是一個很大的謝意。 – Paul 2011-02-23 22:20:23

1

它也適用於我,謝謝你們!

settings.py

MEDIA_ROOT = '/home/pi/ewspaces/ws-classic/xima/media' 

MEDIA_URL = '/statics/' 

urls.py

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

內模板:

<link type="text/css" href="/statics/css/base/jquery.ui.all.css" rel="stylesheet" /> 
+0

這也適用於我,但我想知道在Web上部署項目時需要更改哪些內容。 – 2013-02-06 16:46:39