Django flatpages 应用程序有一个众所周知且经常在网络上讨论的错误,该错误与项目模板目录中缺少的404.html “页面未找到”模板有关。如果您的settings.py文件中有 DEBUG = False,并且您缺少404.html文件,则平面页面将生成 500 服务器错误而不是加载平面页面,因为项目会尝试查找404.html模板,并且生成 500 是因为它不存在。
我的问题与此不同。我的模板目录中确实有一个404.html,连接到我的项目中,连接了中间件,每个平面页面的 SITE_ID 都是正确的,并且存在templates/flatpages/default.html文件。
当我尝试加载任何平面页面时,我的自定义404.html错误页面返回给我。因此,404 模板正在工作,但在返回 404 之前,平面中间件似乎没有检查平面模型中的 URL。
有没有其他人经历过这个和/或找到解决方案?这是一个测试版,所以当我输入时,也许一个解决方案正在开发中。我正在使用 Django 1.1 beta 1。
这是我的整个 MIDDLEWARE_CLASSES:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'djangodblog.DBLogMiddleware',
'ecomstore.SSLMiddleware.SSLRedirect',
'ecomstore.marketing.urlcanon.URLCanonicalizationMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
)