Django 和 S3 Bucket aws Admin 静态文件
Django and S3 Bucket aws Admin Static files
我有一个 django 项目,我想配置 S3 Bucket 来存储静态文件。
创建后,网站会加载,但不会从存储桶中检索文件,因此即使是管理页面也没有 CSS,如屏幕截图所示:
这是用于存储桶配置的设置:
STATIC_URL = '/static/'
MEDIA_URL = '/images/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
AWS_ACCESS_KEY_ID = '************'
AWS_SECRET_ACCESS_KEY = '********************'
AWS_STORAGE_BUCKET_NAME = 'BUCKET_NAME'
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
当然,我将(存储)添加到已安装的应用程序中。
存储桶策略 (CORS) 设置为:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
我也试过了 (py manage.py collectstatic)
如果不手动上传,管理文件夹会出现在存储桶中,但即使在使用“Collectstatic”后我仍然遇到同样的问题(没有 css,没有图像,...)
我在运行圈子里找不到解决办法,如果有人能提供帮助,我将不胜感激。
提前致谢
尝试将完整的 aws link 添加到您的媒体和静态 url:
STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
MEDIA_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION_MEDIA)
确保添加这些字段希望它有效。
AWS_S3_SIGNATURE_VERSION = 's3v4'
AWS_S3_REGION_NAME = 'us-east-2'
AWS_S3_ADDRESSING_STYLE = "virtual"
此外,检查浏览器中生成的 aws 静态文件 link 以查看响应可能对您有进一步帮助。
我有一个 django 项目,我想配置 S3 Bucket 来存储静态文件。
创建后,网站会加载,但不会从存储桶中检索文件,因此即使是管理页面也没有 CSS,如屏幕截图所示:
这是用于存储桶配置的设置:
STATIC_URL = '/static/'
MEDIA_URL = '/images/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
AWS_ACCESS_KEY_ID = '************'
AWS_SECRET_ACCESS_KEY = '********************'
AWS_STORAGE_BUCKET_NAME = 'BUCKET_NAME'
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
当然,我将(存储)添加到已安装的应用程序中。 存储桶策略 (CORS) 设置为:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
我也试过了 (py manage.py collectstatic) 如果不手动上传,管理文件夹会出现在存储桶中,但即使在使用“Collectstatic”后我仍然遇到同样的问题(没有 css,没有图像,...)
我在运行圈子里找不到解决办法,如果有人能提供帮助,我将不胜感激。
提前致谢
尝试将完整的 aws link 添加到您的媒体和静态 url:
STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
MEDIA_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION_MEDIA)
确保添加这些字段希望它有效。
AWS_S3_SIGNATURE_VERSION = 's3v4'
AWS_S3_REGION_NAME = 'us-east-2'
AWS_S3_ADDRESSING_STYLE = "virtual"
此外,检查浏览器中生成的 aws 静态文件 link 以查看响应可能对您有进一步帮助。