1

個人用アプリで 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'
)
4

1 に答える 1

1

にセットアップSTATICFILES_STORAGE: s3storage.S3PipelineStorage

と を使用settings.AWS_STORAGE_BUCKET_NAMEsettings.AWS_LOCATIONて S3 を構成します。

于 2013-05-10T18:13:29.197 に答える