我正在使用几个django包(rest_framework,...)和几个凉亭包(summernote,...)。在进行collectstatic时,会收集大量文件,包括应用程序当然不需要的文件(示例,......)
因此,我最终将大约10000个文件同步到S3以获取一个非常小的网站,这没有任何意义。如何使整个过程更加明智?
我会说罪魁祸首是django的collectstatic,而不是我所说的aws s3 sync
:从collectstatic上传所有内容。
答案 0 :(得分:1)
我可以与您分享我们的方法:我们从不将bower_components
和其他此类库直接放在静态目录中。我们把它们放在其他地方,然后有一个grunt
任务,只将我们需要的文件复制到静态目录中。
基本设置类似于:
grunt.initConfig({
// Copy only the stuff we need from bower_components
copy: {
all: {
files: [
// JS
{
expand: true, flatten: true,
// You can be more generic with something like "bower_components/**/*.min.js"
src: [
"bower_components/bootstrap/dist/js/*.min.js",
"bower_components/jquery/*.min.js"
],
dest: "static/js/"
},
// Same for CSS
]
}
}
});
这种方法有它的缺点 - 你现在有一个额外的配置来维护你的bower.json
等等。它也只会帮助处理你的生成的文件应用
除此之外,您还可以向aws s3 sync
添加一些--exclude
模式,以滤除最明显的绒毛。这里有一个警告,如果你不小心你排除了什么,你最终可能会导致比你解决的问题更多的问题!