Python 新Django应用程序媒体\u URL路径不正确
因此,我通过python manage.py startapp foo在Django中创建了一个新应用程序 我的新应用程序不会通过Python 新Django应用程序媒体\u URL路径不正确,python,django,Python,Django,因此,我通过python manage.py startapp foo在Django中创建了一个新应用程序 我的新应用程序不会通过{media\u URL}加载/site\u media/目录中的任何文件。他们正在尝试从应用程序的目录而不是/site\u media/目录创建路径 示例: 而不是从http://sitename/site_media/bootstrap/bootstrap.min.css 它尝试从http://sitename/foo/bootstrap/bootstrap.m
{media\u URL}
加载/site\u media/
目录中的任何文件。他们正在尝试从应用程序的目录而不是/site\u media/
目录创建路径
示例: 而不是从
http://sitename/site_media/bootstrap/bootstrap.min.css
它尝试从http://sitename/foo/bootstrap/bootstrap.min.css
下面是
settings.py
中的一个片段,它定义了MEDIA\u URL
MEDIA_URL = '/site_media/'
我可以通过在base.html
和myshow\u foo.html
中将{{MEDIA\u URL}}
替换为/site\u MEDIA/
来强制在应用程序中正确加载文件,但这会中断站点其余部分的路径
我不确定其他人还想看到什么来尝试和诊断这个问题,但我被难住了
以防万一: 从我的应用程序目录中的
url.py
#!/usr/bin/python
# -*- coding: UTF8 -*-
from django.conf.urls.defaults import *
urlpatterns = patterns('foo_web.foo_track.views',
url('^$','view_foo_track',name='foo_home'),
url('^newentry/(?P<entry_id>\d+)$','write_form_data',name='foo_track_new'),
)
我认为您必须在url.py中明确定义“site\u media”url 像这样: 将此添加到导入
from django.conf import settings
这与您的URL模式有关:
url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT}))
url(r'^site\u media/(?P.*)$,“django.views.static.service”{
“document_root”:settings.MEDIA_root})
否则,Django将假定您使用不同的web服务器来提供静态内容。顺便说一下,这是个好主意。这是一篇关于的文章,谢谢大家的帮助!结果证明这只是我犯的一个错误:(尽管结果很有趣 我注意到日志中有一些有趣的地方,关于模板中使用了(%csrf_token%),但是上下文没有提供值。这通常是由于没有使用RequestContext造成的。 瞧,在我的
视图.py中,这一行是不正确的:
return render\u to\u response('foo\u track/foo\u track\u show.html',{'access':access})
它应该有RequestContext(request)
以及以下内容:
返回render\u to\u响应('foo\u track/foo\u track\u show.html',{'access':access},RequestContext(request))
现在一切都正常了。Sheesh!是django.core.context\u processors.media
在你的模板\u context\u processors
设置中?嗯。我没有模板\u context\u processors
,我没有配置这个网站,所以我只能以无知为借口。最后是“罪魁祸首”在我的同事lol上。所以我应该添加这里概述的块([),并且应该得到一些有建设性的错误消息吗?@shuttle87我尝试添加了您提到的块,还有nada。感谢您的回答,我们希望在不久的将来过渡到Apache。我发现了我的错误,这只是我把事情搞砸的又一个例子!
url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT}))