【问题标题】:AWS Cloudfront serving javascript modules as wrong MIME type( "Text/Plain")AWS Cloudfront 将 JavaScript 模块作为错误的 MIME 类型(“Text/Plain”)提供服务
【发布时间】:2021-08-27 16:49:03
【问题描述】:

我有一个托管在 Amazon S3 存储桶上的 Vue 应用程序。当通过带有 http 的 S3 链接访问时,它的加载效果很好。当我通过指向云端的自定义 SSL 域链接访问该站点时,javascript 未正确提供。 JS 文件可以通过浏览器中的 https 完全访问,但不要在浏览器中执行,给我留下一个空白页面。我在 index.html 中的两个 javascript 链接都收到以下错误:

加载模块脚本失败:需要一个 JavaScript 模块脚本,但是 服务器以“text/plain”的 MIME 类型响应。严格的 MIME 根据 HTML 规范对模块脚本强制执行类型检查。

另外:我按照这里的说明进行操作:https://levelup.gitconnected.com/deploying-vue-js-to-aws-with-https-and-a-custom-domain-name-3ae1f79fe188

【问题讨论】:

    标签: javascript vue.js amazon-s3 https amazon-cloudfront


    【解决方案1】:

    想通了,我只需要在 S3 控制台中手动将各个 js 对象的系统定义内容类型从 text/plain 更改为 application/javascript,然后确保缓存无效并在我的浏览器上刷新。

    【讨论】:

      【解决方案2】:

      如果通过 aws 命令行工具上传,您可以通过注册表编辑使其上传具有正确 mime/内容类型的 javascript 文件。

      修改注册表项

      HKEY_CURRENT_USER\SOFTWARE\Classes.js

      将“内容类型”设置为“应用程序/javascript”

      注意:最后一次 Windows 更新(截至 2022 年 1 月 14 日)悄悄将此注册表项恢复为“text/plain”。

      【讨论】:

        猜你喜欢
        • 2021-08-27
        • 1970-01-01
        • 2022-11-29
        • 2020-05-11
        • 2021-03-07
        • 2019-11-18
        • 2021-05-08
        • 2012-06-02
        相关资源
        最近更新 更多