python - 从 S3 存储桶提供静态文件不起作用?
问题描述
我已经配置了一个 S3 存储桶来存储和提供 Django 网站的静态和媒体文件,目前只是试图获取管理页面所需的静态文件等等。
这是我的设置文件中的所有静态和 AWS 配置信息:
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
DEFAULT_FILE_STORAGE = 'config.storage_backends.MediaStorage'
#used to authenticate with S3
AWS_ACCESS_KEY_ID = 'AKIAWWJOJKZGFSJO2UPW' #not real one
AWS_SECRET_ACCESS_KEY = 'KNg1z5wXWiDRAIh4zLiHgbD2N3wtWZTK' #not real one
#for endpoints to send or retrieve files
AWS_STORAGE_BUCKET_NAME = 'my-static' #not real bucket name
AWS_DEFAULT_ACL = None
AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com'
AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400',}
AWS_LOCATION = 'static'
STATIC_ROOT = 'static'
STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{AWS_LOCATION}/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'config/static'),
]
当然,为了这篇文章的目的,我用假变量替换了任何敏感变量。我已经阅读了许多教程和其他帖子,并且似乎正确配置了我的 STATIC_URL,但是每当我运行服务器并转到管理页面时,都没有应用任何 css。我认为它没有正确地从存储桶中检索静态文件(它们都上传到 S3 存储桶),但我不知道该怎么做。
解决方案
我有一个类似的问题,并花了几个小时试图弄清楚。原来我上传的存储桶中的一个静态文件夹在其文件夹名称中有一个下划线,一旦我将下划线更改为连字符就可以了。
以下是文件、文件夹和其他命名准则的参考:
推荐阅读
- python - 当我安装了 python-docx 包时,它不允许我的程序运行。一旦我卸载它,我的程序就会运行
- javascript - 响应式 Youtube 背景 v.2
- microsoft-edge - 在 Edge 中从 Extension 到 PWA 的通信
- svg - svg 镜像路径而不改变坐标
- angular - formGroupDirective 用于重置表单 - Angular 反应式表单
- google-sheets - 根据匹配数据将单元格数据复制到第二张工作表
- java - Spring AOP - 自定义注释未在 JoinPoint 中通过
- automated-tests - 单击表柏树中的随机行
- php - CodeIgniter e Oracle - 表名中的双引号 - ActiveRecords
- ios - 如何在一系列问题中后退或前进?