collectstatic 无法收集管理静态文件
Posted
技术标签:
【中文标题】collectstatic 无法收集管理静态文件【英文标题】:collectstatic fails to collect admin static files 【发布时间】:2012-12-24 06:29:50 【问题描述】:当我运行 collectstatic 并且在没有 css 的情况下提供管理页面时,我遇到了以下错误。
错误:
IOError: [Errno 2] 没有这样的文件或目录: u'/usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/img/gis/move_vertex_off.png
以下是设置。
STATIC_ROOT = '/var/www/mysite/media/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
这个错误信息是什么意思?该文件确实存在于上述路径中。
【问题讨论】:
【参考方案1】:我认为问题是由于某些安装错误造成的。重新安装 django 没有帮助。完全重新安装了操作系统,因为这对我来说是更快的解决方案,而且一切顺利。但对我来说,根本原因仍然是个谜。
【讨论】:
我怀疑是你的Django项目的Python安装和配置。 @stellarchariot 是的。我也怀疑权限。 @Vino 重新安装操作系统? O_O 能帮到你我很高兴。【参考方案2】:默认情况下,collectstatic 在 STATICFILES_DIRS 中定义的所有位置以及 INSTALLED_APPS 设置指定的应用程序的“静态”目录中查找(请参阅:https://docs.djangoproject.com/en/dev/howto/static-files/ 和 https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/)。
因此,如果您将管理员添加到您的 INSTALLED_APPS,这应该没问题。
当前版本的 Django 中不再使用 ADMIN_MEDIA_PREFIX。
【讨论】:
【参考方案3】:我通过运行python manage.py collectstatic
解决了这个问题,然后将以下内容添加到我的 Apache 配置中:
Alias /static/admin/ /PATH/TO/MY/PROJECT/static_root/admin/
<Directory /PATH/TO/MY/PROJECT/static_root/admin>
Require all granted
</Directory>
【讨论】:
以上是关于collectstatic 无法收集管理静态文件的主要内容,如果未能解决你的问题,请参考以下文章
收集静态文件会抛出 ImproperlyConfigured
ValueError:即使在 collectstatic 之后也缺少静态文件清单条目
Django,即使在 collectstatic 之后也没有提供 uwsgi 静态文件