10

静的ファイルに django-storages と amazon s3 を使用しています。ドキュメントに従って、これらの設定をsettings.pyに入れました

STATIC_URL = 'https://mybucket.s3.amazonaws.com/'

ADMIN_MEDIA_PREFIX = 'https://mybucket.s3.amazonaws.com/admin/'

INSTALLED_APPS += (
    'storages',
)

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'mybucket_key_id'
AWS_SECRET_ACCESS_KEY = 'mybucket_access_key'
AWS_STORAGE_BUCKET_NAME = 'mybucket'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

そして、初めて collect static を実行したとき、すべてが正しく機能し、静的ファイルが s3 バケットにアップロードされました。

ただし、静的ファイルに変更を加えて実行すると、python manage.py collectstatic静的ファイルが変更されたにもかかわらず、これが出力されます

-----> Collecting static files
    0 static files copied, 81 unmodified.

ただし、変更した静的ファイルの名前を変更すると、変更した静的ファイルが s3 バケットに正しくコピーされます。

django-storages が変更した静的ファイルをアップロードしないのはなぜですか? 設定に問題がありますか、それとももっと深刻な問題ですか?

4

4 に答える 4

18

「ターゲット」ファイルがソースファイルより「若い」場合、collectstatic はファイルをスキップします。Amazon S3 ストレージがファイルに対して間違った日付を返すようです。

[コード][1] を調査し、サーバーの応答をデバッグできます。タイムゾーンに問題があるのか​​もしれません。

または、 --clear 引数を collectstatic に渡して、収集する前に S3 ですべてのファイルを削除することもできます。

于 2013-07-10T07:13:19.493 に答える