django-compressorとdjango-staticfilesを設定して、圧縮されたCSS/Javascriptと画像がAmazonのS3から提供されるようにしようとしています。AmazonのS3でdjango-compressorとdjango-staticfilesを設定する方法は?
S3をバックエンドとして使用して、collectstatic
コマンドがSTATIC_ROOT
の代わりにS3にファイルを送信するように静的ファイルを設定できました。
しかし、django-compressor
をミックスに追加しようとすると、それはすべて私のために崩壊するようです。 documentationリモートストレージの設定に続いて、ストレージバックエンドのサブクラスbotoを作成したので、exampleをにコピーしました。このキャッシュバックエンドを使用すると、ファイルはS3ではなくstatic_mediaにコピーされます。最初のページが読み込まれると、CACHEフォルダーがS3とstatic_mediaフォルダーに表示されます。
STATICFILES_STORAGE
とCOMPRESS_STORAGE
をbotoの通常のS3クラス(storages.backends.s3boto.S3BotoStorage
)に戻すと、静的資産はS3バケットに収集され、static_mediaフォルダには収集されません。原点としてタグとして{% compress css %}
とcompressor/base.py
を強調
Caught NotImplementedError while rendering: This backend doesn't support absolute paths.
:しかし、ページを再ロードしようとすると、エラーがスローされます。
私settings.py
のS3/staticfiles /コンプレッサ部:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'key'
AWS_SECRET_ACCESS_KEY ='secret'
AWS_STORAGE_BUCKET_NAME = 'my-bucket'
S3_URL = 'http://my-bucket.s3.amazonaws.com/'
MEDIA_ROOT = 'client_media'
MEDIA_URL = '/media/'
STATIC_ROOT = 'static_media'
STATIC_URL = S3_URL
ADMIN_MEDIA_PREFIX = S3_URL + 'admin/'
STATICFILES_DIRS = (
join(DIRNAME, 'static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
)
COMPRESS_ENABLED = True
COMPRESS_URL = S3_URL
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_STORAGE = 'storage.CachedS3BotoStorage'
STATICFILES_STORAGE = COMPRESS_STORAGE
だから私は間違っているんですか?おそらくCachedS3BotoStorage
カスタムストレージを使用しているときに何かを誤って設定したことはありますか?