我想使用django-管道和django-存储在heroku上的个人应用程序。只使用django-管道工作得很好,只使用django-存储就像一种魅力,但我无法将两者结合在一起:
当您阅读文档时,您会发现这两种方法都可以用于收藏品:
Django-pipeline:
settings.py
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE_CSS = {
'app': {
'source_filenames': (
'css/*',
),
'output_filename': 'css/min.css',
'variant': 'datauri',
},
}Django-Storage
settings.py
STATICFILES_STORAGE = 's3storages.StaticStorage'
s3storages.py
from storages.backends.s3boto import S3BotoStorage
StaticStorage = lambda: S3BotoStorage(
bucket='app_name',
location='assets'
)因此,这两个应用程序都需要设置STATICFILE_STORAGE;当我为s3设置存储时;django-管道不创建min.css和min.js.
因此,我找到了this solution on stack并做了以下操作:
from staticfiles.storage import CachedFilesMixin
from pipeline.storage import PipelineMixin
from storages.backends.s3boto import S3BotoStorage
class S3PipelineStorage(PipelineMixin, CachedFilesMixin, S3BotoStorage):
pass
# Define bucket and folder for static files.
StaticStorage = lambda: S3BotoStorage(
bucket='app_name',
location='assets'
)现在,每次我使用收集器命令时,静态文件都被发送到S3,但是django-管道min.css和min.js不被发送.在我的STATIC_ROOT目录中也没有它们的踪迹..。
你知道我怎样才能把两者结合起来吗?
编辑1:
现在我有了以下内容:(我更改了s3storage :)
settings.py
STATICFILES_STORAGE = 's3storages.StaticStorage'
s3storage.py
from staticfiles.storage import CachedFilesMixin
from pipeline.storage import PipelineMixin
from storages.backends.s3boto import S3BotoStorage
class S3PipelineStorage(PipelineMixin, CachedFilesMixin, S3BotoStorage):
pass
# Define bucket and folder for static files.
StaticStorage = lambda: S3PipelineStorage(
bucket='app_name',
location='assets'
)发布于 2013-05-10 18:13:29
设置STATICFILES_STORAGE到:s3storage.S3PipelineStorage。
使用settings.AWS_STORAGE_BUCKET_NAME和settings.AWS_LOCATION配置S3。
https://stackoverflow.com/questions/16479442
复制相似问题