gpt4 book ai didi

python - 将静态(对于 Django 项目)上传并使用到 AWS S3

转载 作者:行者123 更新时间:2023-12-01 00:46:40 25 4
gpt4 key购买 nike

感谢您花时间阅读本文。我的问题很简单。

我能够设置collectstatic函数来将静态数据上传到AWS S3,但搞砸了一点。我一直在进行一些更改,现在我的网站没有使用正确的 url 来加载 css 文件。因此,我的初始代码将静态数据移至 S3 存储桶的“static”文件夹,并在以下网址引用它:

https://{project}.s3.amazonaws.com/static/css/bootstrap.min.css

现在,经过一些更改后,我使其引用相同的地址,但没有“静态”文件夹:

https://{project}.amazonaws.com/css/bootstrap.min.css

collectstatic 函数也会发生同样的情况。它不是将所有静态加载到“static”文件夹,而是将所有内容加载到存储桶的根目录。

这是我的设置文件:

settings.py

AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = config('AWS_STORAGE_BUCKET_NAME')
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME

AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}


STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static/'), ]
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATIC_URL = "https://%s/static/" % (AWS_S3_CUSTOM_DOMAIN)

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
MEDIA_URL = 'https://%s/media/' % (AWS_S3_CUSTOM_DOMAIN)

感谢您提前提供的所有帮助!我非常感谢社区和支持。

最好,拉苏尔·基里耶夫

最佳答案

# constants

STATICFILES_LOCATION = 'static'
STATICFILES_STORAGE = 'custom_storages.StaticStorage'

覆盖 s3boto3storage 类变量位置。

# custom_storages.py

from django.conf import settings
from storages.backends.s3boto3 import S3Boto3Storage

class StaticStorage(S3Boto3Storage):
location = settings.STATICFILES_LOCATION

您可以关注此article以供进一步引用。

关于python - 将静态(对于 Django 项目)上传并使用到 AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56928418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com