Django模板无法看到CSS文件

时间:2009-07-02 17:45:34

标签: python css django django-templates

我正在构建一个django应用程序,我无法获取模板以查看CSS文件...我的settings.py文件看起来像:

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

我在/ mysite / media / 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'}),

但开发服务器提供普通的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}),
    )

瞧!它有效。

5 个答案:

答案 0 :(得分: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}),

答案 1 :(得分:5)

默认情况下,

ADMIN_MEDIA_PREFIX设置为\media\,可能正在“窃取”路径。更改该设置,或对非管理员媒体使用其他设置 - 例如site_mediaassets

答案 2 :(得分:2)

在开发服务器上,我喜欢欺骗并将以下内容放入我的urls.py

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

这样,“/ includes”文件夹下的项目中的任何内容都是开发服务器的服务器。您可以将其更改为“/ media”。

答案 3 :(得分: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" />

答案 4 :(得分:0)

当我试图让jQuery工作时,我遇到了类似的问题。我的修复是为我的Apache httpd.conf文件添加一个别名,该文件指向包含.js的文件夹。您可以对CSS文件夹执行相同的操作。