首页 > 解决方案 > 如何告诉浏览器接受存储在 S3 中的带时间戳的回形针 css 文件

问题描述

我需要使用回形针将自定义CSS文件保存到 AWS S3 中,然后使用回形针附件 url 将它们加载回 html 文件中。所以,link标签看起来像:

 <link rel = "stylesheet" href = "https://s3.us-east-2.amazonaws.com/....../theme.css20190126-23995-3w63v8.css?1548515496"> 

在 Firefox 中加载文件将在控制台中显示以下错误:

样式表 https://s3.us-east-2.amazonaws.com/....../theme.css20190126-23995-3w63v8.css?1548515496 未加载,因为它的 MIME 类型为“text/plain”,不是“文本/css”。

我尝试使用此解决方案并添加.url(:default, timestamp: false)到附件 url。但是,这为浏览器提供了错误的文件 url,并且未加载 CSS 文件。

标签: htmlcssruby-on-railsrubyamazon-s3

解决方案


AWS S3 返回默认内容类型“text/plain”,因此您应该在 AWS S3 上设置元数据。

  1. 登录您的 AWS 控制台。
  2. 在 AWS S3 控制台上转到您的文件 (xxx/xxx/theme.css20190126-23995-3w63v8.css)。
  3. 打开文件的属性选项卡。
  4. 添加内容类型单击元数据部分的“+ 添加元数据”。

当然,您可以从程序中修改元数据。

https://docs.aws.amazon.com/en_us/sdk-for-ruby/v3/developer-guide/s3-example-upload-bucket-item-with-metadata.html


推荐阅读