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

Del*_*eet 5 python django

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

使用Django和s3boto,一些管理员图像(icon_clock.gif&icon_calendar.gif)不显示

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

首先问题是jquery文件丢失了,但是在修复的问题中运行collectstatic(manage.py)virtualenv.但是,仍然缺少两个管理媒体文件.404 URL调用是:

http://example.com/missing-admin-media-prefix/img/icon_calendar.gif
http://example.com/missing-admin-media-prefix/img/icon_clock.gif
Run Code Online (Sandbox Code Playgroud)

奇怪的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/"
Run Code Online (Sandbox Code Playgroud)

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

我已经没想完了.

Ale*_*kha 3

django 1.9.1 中的此错误意味着使用了旧版本的 javascript 文件“django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js”,因为其中没有“missing-admin-media-prefix”文本新版本。

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

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

根据评论中的讨论更新:

该问题是由于通过 pip 全局安装旧版本的 django 造成的。为了解决这个问题,接下来的步骤已经完成:
1)全局安装的 django 的旧版本已被删除pip uninstall djangopip3 uninstall django在 virtualenv 之外);
2)使用python manage.py collectstatic -cwhere-c选项重新收集静态文件以清除现有文件(激活virtualenv);
3) 网络服务器重新启动。

  • 正如我上面所写,Django 不是通过 `apt-get` 安装的。它是通过“virtualenv”中的“pip”安装的。对困惑感到抱歉。我观察了全球环境。Django 在 1.8.3 版本中安装,适用于 python2 和 python3。我查看了“pip list”/“pip3 list”。我卸载了这些。然后我进入“virtualenv”并使用“python manage.pycollectstatic-c”。“-c”告诉它首先清除以前的文件,以确保存在正确的版本。然后我重新启动了apache服务器。这解决了这个问题。 (2认同)