如何告诉Django staticfiles不收集用户上传的媒体目录文件?

时间:2012-02-29 11:35:30

标签: django django-staticfiles

我有一个非常简单的问题,我无法找到答案。使用Django staticfiles应用程序,我通过键入以下命令行调用静态收集例程:python manage.py collectstatic

我的问题是我有几个应用静态的应用程序+一个包含用户上传文件的媒体目录。 Django将所有文件复制到静态目录,包括媒体文件!

当我呼叫python manage.py collectstatic时,我只是希望Django 不将用户上传的文件复制到静态目录。有没有人有想法?试过--ignore选项但没有成功......

提前谢谢。

2 个答案:

答案 0 :(得分:6)

这是django.contrib.staticfiles.finders.DefaultStorageFinder的问题,请尝试从STATICFILES_FINDERS中删除它。

答案 1 :(得分:0)

那么如果使用--ignore,究竟什么不起作用?

虽然真正的解决方案不是混合用户生成的内容和静态文件。

如果您将两种类型分开,则可以轻松地将静态文件置于版本控制之下,并且不必在此前面处理排除。事实上,与媒体(用户生成的)和静态文件的分离是静态文件背后的基本原理:

  

在以前的Django版本中,放置静态资产很常见   在MEDIA_ROOT中以及用户上传的文件,并在以下位置为他们提供服务   MEDIA_URL。引入staticfiles应用程序的部分目的是   使静态文件更容易与用户上传分开   文件。

有关此主题的文档非常全面:https://docs.djangoproject.com/en/dev/howto/static-files/