【发布时间】:2011-02-03 16:02:57
【问题描述】:
我有一个 Django 站点,其中出现了一个奇怪的错误。
他们可以在网站上添加“出版物”,这与使用不同名称的博客文章基本相同。
当他们修改现有帖子时,事情变得很奇怪。他们首先在管理员中对其进行修改,当他们进入网站时,更改是不可见的。就像旧版本被缓存一样。
事实上,一开始我很确定这是一个浏览器缓存错误。但经过一些试验后,事情变得有点奇怪。
我发现清除浏览器缓存或使用其他浏览器并不能解决问题,但有趣的是它会在刷新时在旧版本和修改版本之间切换。
所以如果帖子的正文是“Hello World”,我将其修改为“再见残酷的世界”,然后转到该网站并多次刷新页面,我会看到“Hello World”,然后是“再见”残酷的世界”,然后是“Hello World”等等……不管我坚持多久。
但它并不止于此.. 大约 24 小时后,一切都恢复原状并正常工作。不再排列,网站坚持新版本...
我几乎无言以对,因为我使用同一台服务器构建了超过 50 个其他 Django 站点,而我以前从未遇到过这个问题。
我正在使用最新的 django (1.3) 和 MySQL 数据库并且没有启用缓存..
有什么想法吗?
编辑:优雅重启 Apache 解决了这个问题.. 但每次更新后重启 apache 并不是最棒的事情..
更新:我刚刚重新设置了我的开发环境,我发现这个错误在开发服务器上更为严重。在我终止/重新启动开发服务器之前,修改后的竞争不会显示,无论我多久刷新或清除我的缓存..
【问题讨论】:
-
您需要显示一些代码 - 您是如何编辑和显示帖子的?
-
使用 firebug 'network' 选项卡检查您的页面响应标头,然后粘贴到此处,以便我们查看服务器缓存的配置方式
-
@Daniel 我使用的是基于自定义类的视图(基于 django 类的前视图),但我恢复到更简单的方法并仍然得到相同的结果,这是代码:pastebin.ca/2040801
-
@jujule 这是在数据库内容更改后立即发出的 4 个不同请求的缓存屏幕截图。正如我所怀疑的,这似乎不是缓存问题.. i.min.us/icepCu.png
标签: django