我有一个非常简单的问题,我无法找到答案。使用 Django 静态文件应用程序,我通过键入以下命令行调用静态收集例程:python manage.py collectstatic
。
我的问题是我有几个应用程序服务静态+一个包含用户上传文件的媒体目录。Django 将所有文件复制到静态目录,包括媒体文件!
我只是希望 Django在我调用python manage.py collectstatic
. 有人有想法吗?尝试了--ignore
选项,但没有成功...
先感谢您。
我有一个非常简单的问题,我无法找到答案。使用 Django 静态文件应用程序,我通过键入以下命令行调用静态收集例程:python manage.py collectstatic
。
我的问题是我有几个应用程序服务静态+一个包含用户上传文件的媒体目录。Django 将所有文件复制到静态目录,包括媒体文件!
我只是希望 Django在我调用python manage.py collectstatic
. 有人有想法吗?尝试了--ignore
选项,但没有成功...
先感谢您。
那是 django.contrib.staticfiles.finders.DefaultStorageFinder 的问题,尝试从 STATICFILES_FINDERS 中删除它。
那么,如果您使用,究竟什么不起作用--ignore
?
尽管真正的解决方案不是混合用户生成的内容和静态文件。
如果您将两种类型分开,您可以轻松地将静态文件置于版本控制之下,并且也不必在这方面处理排除。事实上,与媒体(用户生成)和静态文件的分离是静态文件背后的基本原理:
在以前的 Django 版本中,通常将静态资产与用户上传的文件一起放在 MEDIA_ROOT 中,并在 MEDIA_URL 处提供它们。引入 staticfiles 应用程序的部分目的是更容易将静态文件与用户上传的文件分开。
关于这个主题的文档非常全面:https ://docs.djangoproject.com/en/dev/howto/static-files/