django static admin 404 for icon_clock.gif和icon_calender.gif

时间:2016-01-26 14:42:21

标签: python django

我可以找到一个先前的问题:

Using Django and s3boto, some admin images (icon_clock.gif & icon_calendar.gif) don't display

但它已过时(2013年)。我在Ubuntu 14.04.3 LTS上运行django 1.9.1,apache,wsgi。

首先问题是jquery文件丢失了,但是collectstatic内的manage.pyvirtualenv}修复了该问题。但是,仍然缺少两个管理媒体文件。 404 URL调用是:

http://example.com/missing-admin-media-prefix/img/icon_calendar.gif
http://example.com/missing-admin-media-prefix/img/icon_clock.gif

奇怪的URL前缀导致人们找到与该问题相关的几个非常古老的问题,但似乎已经为django 1.9.1折旧了。

我的settings.py看起来像这样:

STATIC_URL = '/static/'
#ADMIN_MEDIA_PREFIX = '/static/admin/'
#MEDIA_URL = "/media/"
#MEDIA_ROOT = "/home/user/app_root/media/"
STATIC_ROOT = "/home/user/app_root/static/"

已经过时的线条是我在与同一问题相关的过时问题中找到的建议(没有效果)。所有其他静态文件都可以正常工作,包括大多数管理文件。

我已经没想完了。

1 个答案:

答案 0 :(得分:3)

django 1.9.1中的这个错误意味着旧版本的javascript文件' django / contrib / admin / static / admin / js / admin / DateTimeShortcuts.js'因为没有' missing-admin-media-prefix'新版本中的文字。

也许您应该只使用shift-F5重新加载页面或清除浏览器缓存。

如果它没有帮助 - 请在浏览器控制台中检查为何使用旧版本的文件。

通过评论中的讨论更新:

问题是由于旧版本的django通过pip全局安装。为解决这个问题,我们采取了以下措施: 1)使用pip uninstall djangopip3 uninstall django(在virtualenv之外)删除了旧版全局安装的django;
2)使用python manage.py collectstatic -c重新收集静态文件,其中-c是清除现有文件的选项(使用激活的virtualenv);
3)Web服务器重新启动。