django - 为什么没有加载来自 AWS S3 的静态文件?
问题描述
我已经在 Amazon 存储桶上托管了我的静态文件并在设置中配置了它们,但是当我运行服务器并抛出错误时它们仍然没有加载,如图所示:
解决方案
默认情况下,Amazon S3 中的对象是私有的。
如果您希望您的对象可访问,您将需要使用以下方法之一:
- 将存储桶策略附加到允许公共访问的 Amazon S3 存储桶。请参阅:存储桶策略示例 - Amazon S3或
- 将
public-read
权限分配给各个对象,或 - 让您的应用程序生成一个Amazon S3 预签名 URL,它授予对对象的限时访问权限。
您提供的屏幕截图显示了采用预签名 URL 格式的 URL。这可能是因为您的应用程序生成了预签名 URL,或者是因为您从 Amazon S3 管理控制台中复制了一个链接。这些 URL 在给定时间段后过期,如果您提供对私有对象的临时访问,这对于安全性来说是理想的。
但是,如果您的意图是任何人都可以随时访问这些文件,则应将存储桶策略附加到 Amazon S3 存储桶。
另请参阅:在 Amazon S3 上托管静态网站
推荐阅读
- huawei-mobile-services - 当我使用 TimeBarrier.SUNRISE_CODE 作为方法 inSunriseOrSunsetPeriod 中的第一个参数时,HMS 中的障碍结果始终为 false
- amazon-web-services - 使用相同变量的多个实例
- java - 如果日期与当前日期 Android 匹配,则检查列表中的项目并删除然后项目
- eclipse - 导致 404 的简单 JSP
- scala - Spark DataFrame 每条记录添加“[”字符
- c++ - 为什么 & 限定符与赋值运算符一起使用?
- javascript - Javascript 中的 Console.log() 或 getDocumentbyID?
- connection - System.Net.Sockets.SocketException (10061)
- php - 使用 php 从 mysql 获取 d3.js 的数据
- node.js - Node.js net 模块无法识别中文、韩文等双字节字符