Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS S3存储桶上的Django静态文件_Django_Amazon S3_Django Storage - Fatal编程技术网

AWS S3存储桶上的Django静态文件

AWS S3存储桶上的Django静态文件,django,amazon-s3,django-storage,Django,Amazon S3,Django Storage,有很多类似的问题,但在经历了其中的一些之后,我仍然无法正确回答 我有一个Django应用程序,我想使用AWS S3存储桶提供静态和媒体文件。我可以运行python manage.py并将文件添加到bucket中。但是,对于浏览器上的静态文件,我遇到了404未找到错误。我的配置在某个时间点起作用,因为我可以通过检查页面来查看来自s3的文件,但我找不到为使其现在不起作用而进行的更改 以下是我的设置.py: USES_S3=os.getenv('USES_S3')=='True' 如果使用_S3: A

有很多类似的问题,但在经历了其中的一些之后,我仍然无法正确回答

我有一个Django应用程序,我想使用AWS S3存储桶提供静态和媒体文件。我可以运行
python manage.py
并将文件添加到bucket中。但是,对于浏览器上的静态文件,我遇到了404未找到错误。我的配置在某个时间点起作用,因为我可以通过检查页面来查看来自s3的文件,但我找不到为使其现在不起作用而进行的更改

以下是我的设置.py:

USES_S3=os.getenv('USES_S3')=='True'
如果使用_S3:
AWS\u ACCESS\u KEY\u ID=os.getenv('AWS\u ACCESS\u KEY\u ID'))
AWS\u SECRET\u ACCESS\u KEY=os.getenv('AWS\u SECRET\u ACCESS\u KEY'))
AWS\u STORAGE\u BUCKET\u NAME=os.getenv('AWS\u STORAGE\u BUCKET\u NAME'))
AWS_DEFAULT_ACL='公共读取'
AWS_S3_CUSTOM_DOMAIN=f'{AWS_STORAGE_BUCKET_NAME}.S3.amazonaws.com'
AWS_S3_对象_参数={'CacheControl':'max age=31536000'}
AWS_位置='静态'
STATIC_URL=f'https://{AWS_S3_CUSTOM_DOMAIN}/{AWS_LOCATION}/'
STATICFILES\u STORAGE='core.STORAGE\u backends.StaticStorage'
公共媒体位置='MEDIA'
媒体URL=f'https://{AWS_S3_自定义_域}/{PUBLIC_媒体位置}/'
默认文件存储='core.STORAGE\u backends.MediaStorage'
其他:
静态URL='/STATIC/'
STATIC\u ROOT=os.path.join(核心目录“staticfiles”)
媒体URL='/mediafiles/'
MEDIA\u ROOT=os.path.join(基本目录'mediafiles')
静态文件\u目录=(
join(CORE_DIR,'CORE/static'),
)
storages_backend.py:

来自django.conf导入设置的

从storages.backends.s3boto3导入s3boto3存储
类媒体存储(S3boto3存储):
位置='媒体'
默认_acl='公共读取'
文件覆盖=False
静态存储类(S3BOT3存储):
位置='静态'
默认_acl='公共读取'
我还尝试设置以下变量,但没有成功:

AWS\u S3\u签名\u版本='virtual'
AWS_S3_地区_名称='eu-west-3'
AWS_S3_签名_版本='s3v4'
知道会是什么吗?我不明白collectstatic是如何工作的,如何在bucket上创建文件的,但是我得到了404

下面是我的一个html文件的示例(这是base.html):


{%load static%}
{%block样式表%}{%endblock样式表%}
{%include'包含/navigation.html%}
{%include'包含/sidebar.html%}
{%block content%}{%endblock content%}
{%include'包含/scripts.html%}
{%block javascripts%}{%endblock javascripts%}

您能否显示您的HTMLcommand collectstatic将文件传输到一个静态文件夹(在您的情况下是AWS S3),这意味着您成功地对其进行了正确配置:)问题必须在您的amazon配置中或在您的html@bazzuk123谢谢你的回复。我已经用我的base.htmly更新了我的问题。如果你转到你的bucket文件url(例如:your-bucket-name-bucket.s3.us-east-2.amazonaws.com/static/assets/plugins/animation/css/animate.min.css),你应该用{%static'路径/name.css%}加载每个静态文件。你看到404页面了吗?加载是否正确?