为什么Django管理员“今天”和“现在”按钮不显示在Safari中?

时间:2009-01-14 17:30:35

标签: javascript python django safari webkit

我正在开发一个包含带日期/时间字段的模型的Django应用程序。在我的应用程序的本地副本上,该特定模型的管理页面显示日期/时间字段:

alt text http://www.cs.wm.edu/~mpd/images/bugs/django-date-local.png

这是预期的。但是,当我部署到我的网络服务器并从那里使用应用程序时,我得到了这个:

alt text http://www.cs.wm.edu/~mpd/images/bugs/django-date-server.png

服务器上的应用程序与我的本地副本完全相同,除了我在服务器上禁用了调试(但我不认为这应该是重要的...应该是?)。为什么服务器上的管理员应用程序与本地管理员应用程序不同?


更新

  • 该问题似乎已本地化为Safari。当通过Firefox访问管理站点时,会出现“今天”和“现在”按钮。看起来Safari无法下载显示这些小部件所需的一些JavaScript文件(但奇怪的是Firefox可以)。
  • 我注意到Safari正在接收以下文件的“304 Not Modified”代码,但我不确定这意味着什么,或者如何修复它。显然,这些是控制日期/时间小部件的JavaScript文件和图像:
    • RelatedObjectLookup.js
    • DateTimeShortcuts.js
    • icon_calendar.gif
    • icon_clock.gif

5 个答案:

答案 0 :(得分:3)

我认为您必须查看firefox配置和safary配置之间的不同之处

脱离我的头顶:

  • 可以将其中一个配置为使用代理(弄乱流量),另一个则不配置。确保两者中的配置相同。

  • Safari可能会在再次测试之前缓存错误,清除缓存。

  • 尝试直接从浏览器访问gif文件(通过输入图像的完整URL)并在线上运行wireshark,比较GET请求和响应。会有所不同,可以帮助您跟踪问题。

答案 1 :(得分:2)

如果你在这些文件上获得304。刷新浏览器的缓存,然后重试。

如果它无论如何都没有再加载,请确保你已经200 OK了。

答案 2 :(得分:1)

您似乎缺少管理媒体(因此js和图片未加载)。我一般都会关注。

settings.py

中的

ADMIN_MEDIA_PREFIX = '/media/admin/'

然后我在django.contrib.admin.media目录中对media的路径进行符号链接。说:

ln -s /var/lib/python-support/python2.5/django/contrib/admin/media/ /var/www/media/admin

开发服务器自动提供管理媒体。但是在生产服务器上,人们通常更喜欢直接从apache(或任何服务器)服务器静态内容。

答案 3 :(得分:0)

检查部署服务器上的媒体位置,权限和设置。

http://www.djangobook.com/en/1.0/chapter20/

答案 4 :(得分:0)

您是否尝试过检查firebug的NET标签,看看管理员的javascript / css / image文件是否都正确加载了?

我曾经遇到过这个问题。

将dev服务器中的所有文件与生产服务器进行比较。