個人用アプリで heroku の django-pipeline と django-storage の両方を使用したいと考えています。django-pipeline のみを使用すると完璧に動作し、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-pipeline は 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-pipeline の 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'
)