我正在我的项目根目录下将bower组件安装到external/bower_components/
。我在static
下有其他静态文件,还有一些是已安装应用程序的一部分。我试图使用django-pipeline缩小所有生成bower_components
的静态文件,而我只留下其他静态文件。
我的问题是,我无法弄清楚如何使用django-pipeline缩小我的bower组件,同时不会将所有bower包复制到目标目录。
settings.py
中的:
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
os.path.join(os.path.dirname(__file__), '..', 'external'),
)
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'
PIPELINE = True
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'pipeline.finders.PipelineFinder',
)
当我运行python manage.py collectstatic
时,我最终会在staticfiles
中找到我想要的东西(静态基础中的东西以及从凉亭中拉出的物品的缩小版本),加上凉亭中每一个包装的完整来源。这是从最终用户的角度来看的,但是那里有很多我实际上并不想要的垃圾。
要解决此问题,我尝试了python manage.py collectstatic -i bower_components
。但在这种情况下,忽略不仅会导致collectstatic
不复制文件,而且还会导致django-pipeline无法看到文件,并且最终
如果我尝试使用某些自定义管道查找程序,例如pipeline.finders.FileSystemFinder
,则collectstatic
会导致django.contrib.admin
和我的static/
文件夹中出现我想要的所有静态脚本和CSS。
有没有办法让我的蛋糕也可以吃掉它,以便我可以获得collectstatic
的复制功能来关注一组django-pipeline的组合/缩小注意一个不同的群体?
写完这篇文章后,我意识到答案可能是使用PIPELINE_CSS
和PIPELINE_JS
明确收集和缩小我已安装的应用中的所有脚本和css,但这似乎并不理想,因为它不常见每次集成新应用程序时都会产生开销。
答案 0 :(得分:2)
是的,但是您需要修改静态查找器以更改静态查找器以使用django-pipeline finders:
STATICFILES_FINDERS = (
'pipeline.finders.FileSystemFinder',
'pipeline.finders.AppDirectoriesFinder',
'pipeline.finders.CachedFileFinder',
'pipeline.finders.PipelineFinder'
)
这应该只复制那里的相关文件。