问题描述
几周前我跑了collectstatic
,我想删除大部分(99.5%)收集的文件,以便在部署到生产环境时不必存储它们。我尝试了collectstatic --clear
,但此操作将它们删除,然后再将删除的文件放回原处(不确定命令的实际意义是什么。文档指出它用于“删除过时的静态文件”,但肯定不会)做到这一点)。有办法擦除收集的文件吗?
我一直在使用this page of the Django docs来寻求解决方案,但是没有任何运气。
解决方法
为什么不简单地删除静态文件夹的内容并使用collectstatic重新创建它呢?它应该只收集更新的文件。在此之前进行备份,如果已减少,您还可以比较新旧文件夹的内容。
,通过有趣的命令和动作组合来完成工作。将静态文件夹替换为仅包含所需内容的新文件夹后,
的基本命令collectstatic --noinput --clear --no-post-process
忘记清除大部分文件,而不重新复制它们。但是,js和css文件仍在复制中。为了让系统忽略这些文件而不复制它们,我对每个要复制的JS和CSS填充文件夹使用--ignore标记。就我个人而言,此附加命令如下所示:
--ignore facebook --ignore gis
最后,另一个用户的完整命令模式如下所示:
collectstatic --noinput --clear --no-post-process --ignore [JSfolder0] --ignore [JSfolder1] --ignore [JSfolder2]
,
最佳做法是,只需更新您的.gitignore
文件以忽略您的staticfiles
目录。
因此,这会给您带来部署和开发过程的麻烦。
通过这种方式,您无需考虑collectsatic
命令生成的文件
在这里,例如.gitignore文件:
https://gist.github.com/santoshpurbey/6f982faf1eacdac153ffd86a3a694239
或了解以下内容:https://djangowaves.com/tips-tricks/gitignore-for-a-django-project/