【问题标题】:Django: Why can't I get my development server to work?Django:为什么我的开发服务器不能工作?
【发布时间】:2011-01-06 04:32:10
【问题描述】:

我在 Windows XP 上安装了最新的 Python 2.6(开发服务器一直工作到昨晚)。我已经设置好了路径和 Python 路径,我的开发服务器一直在工作。我最近用 Django 主干的新拉取替换了我的 django-trunk。我认为可能存在导入错误或 Django 在我的应用程序的一个模型中无法捕获的东西。 >。我重新启动计算机并再次尝试新的空应用程序python manage.py runserver 8080 并转到http://127.0.0.1:8080/ 并且它工作(“恭喜。Django is insta ...”)。所以我 CD 到我的真实项目并再次尝试,但没有成功。我没有得到堆栈跟踪或类似的东西。当我在 CMD 提示符中访问 http://127.0.0.1:8080/ 时,我要么得到 [17/Ja/2010 16:30:51] "GET / HTTP/1.1" 301 0 作为输出,要么什么也得不到(即使我硬刷新等)。这可能是什么?

更新(重要):

Firefox 告诉我Firefox can't find the server at www.127.0.0.1.,即使我在http://127.0.0.1:8080/。这是否意味着 Django 真的出于其他原因向 www.127.0.0.1 发送了 301?

我从 settings.py 中删除了PREPEND_WWW,甚至删除了所有安装在 settings.py 中的应用程序(django admin 和预设应用程序除外)。

更新 2: 它可以在 Safari 中使用!怎么会这样?就像 Firefox 获得了某种 301,但 Safari 运行良好。

【问题讨论】:

  • 奇怪。尝试运行python manage.py runserver 0.0.0.0:8080。这将使它在该机器上所有可能的接口上都可用,但如果浏览器和服务器在同一台机器上,它不应该有任何区别。
  • 开启 Firebug。它将记录 301,您将能够看到 django 告诉您的内容。
  • 我建议编辑标题以指定 prepend_www 301 问题
  • 这不是 prepend_www 问题。这是一个浏览器缓存问题。 Firefox 正在保存 301。

标签: django firefox http-status-code-301 django-urls


【解决方案1】:

是的,firefox 记住了 301 永久重定向,我曾经在那个上卡住过一次,重新启动或清理历史记录/缓存没有帮助,所以我只是在另一个端口上运行它。

评论后编辑:

假设您使用一些 localhost_settings.py 在本地设置您的项目,但仍想在生产网站上进行 www_redirect:

try:
    from localhost_settings import *
    PREPEND_WWW = False
except ImportError:
    PREPEND_WWW = True

我是这样做的

【讨论】:

  • 天哪。这看起来真的很奇怪。我不知道记住会有什么好处。将单个请求保存到服务器有破坏网站的风险?想想如果 digg.com 在周一早上只有一个小时的 301 到 Twitter。他们将永久失去大约 10% 的流量:)
  • 你知道,永久重定向意味着永久,但我不知道为什么清除所有 FF 缓存不会重置它(至少当时它对我不起作用)。设置一个新的重定向工作正常,所以不应该出现想象中的 digg->twitter 问题(更不用说临时重定向不是通过设置永久重定向来完成的),不知道如何用 django www 解决它虽然重定向。
  • 我认为缓存清除无法解决的原因是默认情况下 Firefox 的“清除最近历史记录”不会清除“站点首选项”,因此您必须检查它。这样可以节省更多有关网站的信息,包括您上次访问网站时的缩放级别(我有点盲,所以我注意到了)。
猜你喜欢
  • 2017-11-17
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 2016-06-28
  • 1970-01-01
  • 2020-05-31
  • 2018-07-23
相关资源
最近更新 更多