我正在构建一个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}),
)
瞧!它有效。
答案 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_media
或assets
。
答案 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文件夹执行相同的操作。