我是新手请温柔。我正在使用 Nitrous.io 和 Django 1.5。我遇到了一些奇怪的事情,正在寻找一些解释。我不确定是中间件还是我的新派引起了问题(我的钱在我的新派上)。抱歉,蓝色的波浪线我不确定这件事的政策是什么。
这是我的 urls.py:
urlpatterns = patterns('',
url(r'^church$', church),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
在您告诉我不需要添加该静态片段之前,请注意这是我可以正确提供静态文件的唯一方法。
这是我的 settings.py 的相关部分:
DEBUG = True
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'StructureBuilder', #this is the name of my app
'django.contrib.admin',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
STATIC_URL = 'MySite/static/'
在您告诉我我STATIC_URL
的错误或我不需要之前STATIC_ROOT
,请注意这是我能够正确提供静态文件的唯一方法。
这就是发生的事情:
例如,如果我在我的 urlpatterns 中添加一个正斜杠,url(r'^church/$', church),
则正则表达式会检出,但是我的静态文件都没有加载。
如果我删除正斜杠(例如url(r'^church$', church),
并重新加载页面,我会因为正斜杠而收到 404 错误。我的印象是普通中间件(我已经安装)处理了正斜杠链接
删除正斜杠会完美加载页面:
显然,这是不希望的。我可以使用它,但是任何正斜杠都会发生这种情况,而不仅仅是在正则表达式的末尾。这成为一个问题,因为它还将当前页面添加到我所有静态文件的开头。
我的问题:为什么常见的中间件不能正确处理正斜杠?我的静态文件服务配置到底有什么问题,上述方式是我能够让它工作的唯一方法?