Как заставить django-storage и django-pipe работать вместе
Я хочу использовать и django-pipe, и django-storage на heroku для личного приложения. Использование только django-pipe работает отлично, использование только django-storage работает как чудо, но мне не удается заставить их обоих работать вместе:(
Когда вы читаете документы, вы обнаружите, что оба работают с collecstatic:
Django-конвейерный:
settings.py
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE_CSS = {
'app': {
'source_filenames': (
'css/*',
),
'output_filename': 'css/min.css',
'variant': 'datauri',
},
}
Django-хранение
settings.py
STATICFILES_STORAGE = 's3storages.StaticStorage'
s3storages.py
from storages.backends.s3boto import S3BotoStorage
StaticStorage = lambda: S3BotoStorage(
bucket='app_name',
location='assets'
)
Таким образом, оба приложения должны установить STATICFILE_STORAGE; когда я установил хранилище для Amazon S3; django-pipe не создает min.css и min.js...
Поэтому я нашел это решение в стеке и сделал следующее:
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'
)
Теперь каждый раз, когда я использую команду collectstatic, статические файлы отправляются на amazon S3, но django-pipe 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'
)
1 ответ
Настроить STATICFILES_STORAGE
к: s3storage.S3PipelineStorage
,
использование settings.AWS_STORAGE_BUCKET_NAME
а также settings.AWS_LOCATION
настроить S3.