我是个新手,请温柔一点。我正在使用亚硝基.io以及Django 1.5。我经历了一些奇怪的事情,正在寻找一些解释。我不确定是一个中间件还是我的newsmism引起了问题(我的钱都花在我的newsmism上了)。抱歉,我不知道这件事的政策是什么。在
这是我的网址.py公司名称:
urlpatterns = patterns('',
url(r'^church$', church),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
在你告诉我我不需要添加静态代码段之前,请注意,这是我能让我的静态文件得到正确服务的唯一方法。在
这是我的设置.py公司名称:
^{pr2}$在您告诉我我的STATIC_URL
是错误的或者我不需要STATIC_ROOT
之前,请注意这是我能够正确处理静态文件的唯一方法。在
这就是发生的事情:
如果我在urlpatterns中添加一个正斜杠,例如url(r'^church/$', church),
,那么regex将签出,但是没有加载任何静态文件。在
如果我删除正斜杠(例如url(r'^church$', church),
)并重新加载页面,则会因为正斜杠而出现404错误。我的印象是,公共中间件(我已经安装)处理了正斜杠Link
删除正斜杠可以完美地加载页面:
显然,这是不可取的。我可以使用它,但任何正斜杠都会发生这种情况,而不仅仅是在正则表达式的末尾。这会成为一个问题,因为它还会将当前页面添加到所有静态文件的开头。在
我的问题:为什么常见的中间件不能正确处理正斜杠?我的静态文件服务配置到底有什么问题,上面的方法是我能让它工作的唯一方法?在
如果您的
STATIC_URL
前面没有斜杠,浏览器将其视为相对URL。在正如您在您的
normalize.css
失败/church/的屏幕截图中看到的那样,STATIC_URL
前面加了前缀。在这些文件正在运行的其他请求中,/church/不存在。在更改:
到
^{pr2}$这将导致静态内容的请求永远不会受到URL中斜杠的影响,因为它们总是以@服务器根目录开头。在
相关问题 更多 >
编程相关推荐