1

django-storages を使用して静的ファイルを AWS S3 にアップロードしています。チュートリアルに従って、管理ページの静的ファイルを正常にアップロードおよび取得できました。

次に、django プロジェクトに静的ディレクトリを作成し、いくつかのブートストラップ ファイルを追加して、collectstatic を実行しました。ブートストラップ ファイルがすべて S3 バケットに正常に保存されたことがわかります。ただし、アプリを (ローカルと Heroku の両方で) 実行しようとすると、ブートストラップ ファイルが get 403 禁止エラーで失敗します。

管理ファイルは同じ S3 バケット内の管理フォルダーに保存され、問題なく取得されます。この不一致の原因は何ですか? 私はs3が初めてなので、おそらくそこで何か間違ったことをしています。

AWS キーが機能していることを確認しました。

私のsettings.pyは次のとおりです:

AWS_STORAGE_BUCKET_NAME = 'punchline-app'
AWS_PRELOAD_METADATA = True 
STATIC_ROOT = ''
STATIC_URL = 'https://punchline-app.s3.amazonaws.com/static/'
ADMIN_MEDIA_PREFIX = 'https://punchline-app.s3.amazonaws.com/static/admin/'

STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_DIR,"static"),
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
4

1 に答える 1