1

我遇到的问题是,当我在我的根 urls.py 文件中注释掉一个 urlpattern 并通过终止进程并触摸我的 index.fcgi 文件来重新启动服务器(在 Hostgator 共享主机上使用 fastCGI)时,我得到一个 404错误如预期(因为 url 不再匹配),但是当 Django 处理 404.html 模板并发送返回它时,它只是没有静态文件或任何东西的裸 HTML。

但是,当我尝试任何其他 URL 时,除了那些与我注释掉的 urlpatterns 匹配的 URL(当然,与当前活动模式匹配的 URL 除外)时,我会得到一个具有所有正确 CSS 的完全呈现的 404 页面。

所有静态文件当前都位于 ~/public_html/ 中,因为这显然是网络服务器(我无法控制)查找它们的地方。

我只是不明白为什么 Django(或 Web 服务器)在一种情况下能够找到静态文件,而在另一种情况下却不能......

提前感谢大家可能有的任何想法。

4

1 回答 1

2

只是为了确保...您知道至少有两个不同的 404 页面,一个是 Web 服务器在 Web 服务器配置中未定义 URL 时返回的,另一个是 Django 返回的,当 Web 服务器移交时对 Django 的请求,但 urls.py 没有定义与 URL 匹配的模式?

如果您知道这一点,并且浏览器中显示的带有和不带有静态内容的 404 页面都是由 Django 提供的,我建议您查看浏览器发送的获取静态内容的请求。您可以在 Chrome、Safari、Firefox 的调试控制台中执行此操作。在那里,您将能够看到请求(可能是 URL)有什么不同,以便网络服务器返回一个静态内容,而不是另一种情况。

于 2013-07-19T10:49:55.710 回答