在S3上托管的网站只下载一个空白文件?

cav*_*a23 3 amazon-s3 amazon-web-services

我有一个非常简单的网站,字面上只是一个HTML文件,里面有一些文字.我将我的存储桶配置为托管,并将主页设置为index.html.我在此处根据AWS教程设置了权限:https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html

出于某种原因,当我点击网站端点时,系统会提示Chrome保存名为"download"的文件.如果我保存文件并打开它,它只是空白,零字节.为什么我的index.html文件没有提供?

更新:我修复了空文件问题,但它仍然想下载我的页面而不是在浏览器中打开它...

修复:内容类型设置不正确.上传文件时,我必须明确将内容类型属性设置为text/html或text/css.

Nav*_*jay 5

您需要正确设置元数据 - content-type就像text/html您的html页面一样.一旦通过浏览器,浏览器将开始在浏览器中呈现页面而不是下载它们.


bec*_*nse 5

对于那些想知道如何解决访问 cloudfront url 时出现空文件问题的人。我忘记添加默认根对象,并且(可能)因为我的 S3 存储桶中有子文件夹,这导致 cloudfront 不知道要提供哪个文件。

以下是如何在 cloudfront 控制台中添加默认根对象:

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon CloudFront 控制台:https://console.aws.amazon.com/cloudfront/
  2. 在顶部窗格的发行版列表中,选择要更新的发行版。
  3. “分发详细信息”窗格的“常规”选项卡上,单击“编辑”
  4. “编辑分发”对话框的“默认根对象”字段中,输入默认根对象的文件名。
  5. 仅输入对象名称,例如index.html。不要在对象名称前添加 /。
  6. 要保存更改,请单击是,编辑