Django 1.1 beta 1 - Flatpages 错误,Debug = False,带有 404.html

发布于 2024-07-23 02:31:28 字数 1154 浏览 10 评论 0原文

Django 平面应用程序有一个众所周知且经常在网络上讨论的错误,该错误与项目模板目录中缺少 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',
)

The Django flatpages application has a well-known and oft-discussed-on-the-web bug related to a missing 404.html "Page Not Found" template in your project's templates directory. If you have DEBUG = False in your settings.py file, and you're missing the 404.html file, flatpages will generate a 500 server error instead of loading the flatpage because the project tries to find the 404.html template, and the 500 is generated because it isn't there.

My problem is different than this. I do have a 404.html in my templates directory, hooked into my project, the middleware is hooked up, the SITE_ID is correct for each flatpage, and the templates/flatpages/default.html file exists.

When I try to load any flatpage, I get my custom 404.html error page returned to me. So, the 404 template is working, but the flatpage middleware doesn't seem to be checking the URLs in the flatpage models, before it falls back on the 404.

Has anyone else experienced this and/or found a solution? This is a beta version, so perhaps a solution is in the works as I type. I'm using Django 1.1 beta 1.

Here is my entire 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',
)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生活了然无味 2024-07-30 02:31:29

我浏览了 Flatpage 源代码,并通过在管理区域中的页面 URL 末尾添加斜杠解决了同样的问题。

I browsed the flatpage sources and solved the same problem by adding a slash to the end of the page URL in the admin area.

故事未完 2024-07-30 02:31:29

我今天也遇到了类似的问题。 经过大量检查后,我终于通过打开相关平面的“启用评论”(在管理界面中)来修复它......

在页面 http://www.petersanchez.com/2007/08/19/django-flatpages-wtf/
Peter Sanchez 列出了 4 项要做的检查,但这对我的情况没有帮助。

I had a similar problem today. After a lot of chekcing I finally fixed it by turning on "Enable comments" (in the admin interface) for the flatpage in question...

On page http://www.petersanchez.com/2007/08/19/django-flatpages-wtf/
Peter Sanchez lists 4 checks to do, but it did not help in my case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文