我正在使用 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',
)