我开始使用django-pipeline。如果我理解正确,我需要用我的 CSS/JS 文件指定目录来压缩它们。但是,这是一项繁琐的任务,因为我的项目很大,并且到处都有静态文件(不仅在 /static/ 目录下)。
我看到它有 collectstatic 集成,但不是我想的那样:它只是在收集静态文件后运行压缩器,并且只会压缩您在设置中手动指定的文件,而不是所有静态文件。
有什么办法可以告诉 django-pipeline 只压缩我拥有的每个静态文件?
我开始使用django-pipeline。如果我理解正确,我需要用我的 CSS/JS 文件指定目录来压缩它们。但是,这是一项繁琐的任务,因为我的项目很大,并且到处都有静态文件(不仅在 /static/ 目录下)。
我看到它有 collectstatic 集成,但不是我想的那样:它只是在收集静态文件后运行压缩器,并且只会压缩您在设置中手动指定的文件,而不是所有静态文件。
有什么办法可以告诉 django-pipeline 只压缩我拥有的每个静态文件?
您可以使用 glob 语法来选择多个文件。像这样,
您不想使用 collectstatic 对吗?
然后用这种方式,
from django.contrib.staticfiles import finders
all_js = ["{0}/{1}".format(st,"*.js") for st in finders.find("", all=True)]
all_css = ["{0}/{1}".format(st,"*.css") for st in finders.find("", all=True)]
PIPELINE_CSS = {
'colors': {
'source_filenames': tuple(all_css),
'output_filename': 'css/colors.css',
'extra_context': {
'media': 'screen,projection',
},
},
}
PIPELINE_JS = {
'stats': {
'source_filenames': tuple(all_js),
'output_filename': 'js/stats.js',
}
}