Javascript gzip上的require()';d文件返回错误的MIME类型错误
以下是我需要的电话:Javascript gzip上的require()';d文件返回错误的MIME类型错误,javascript,requirejs,compression,gzip,mime-types,Javascript,Requirejs,Compression,Gzip,Mime Types,以下是我需要的电话: require( ['config'], function( config ) { require( ['main'] ); }); 它们被路由到一个CDN(AWS S3+CloudFront),该CDN具有gzip config.js和main.js 标题的相关部分: 浏览器: Accept-Encoding:gzip,deflate,sdch 文件: 在Safari中,这很好用。在Chrome和Firefox中,我遇到以下错误: 解释
require( ['config'], function( config ) {
require( ['main'] );
});
它们被路由到一个CDN(AWS S3+CloudFront),该CDN具有gzip config.js和main.js
标题的相关部分:
浏览器:
Accept-Encoding:gzip,deflate,sdch
文件:
在Safari中,这很好用。在Chrome和Firefox中,我遇到以下错误:
解释为脚本但使用MIME类型传输的资源
应用程序/x-gzip:“”
而且它从不减压。
我曾尝试在require配置中设置scriptType='application/x-gzip',但这只是冻结了一切
有什么想法吗?解决方案其实很简单,doh 在服务器端,我将
内容类型设置为application/x-gzip
。这实际上是误导性的,因为它描述的是压缩之前的内容(因此,也是解压缩之后的内容)。内容编码是指定实际压缩步骤的编码
为了解决这个问题,我只需将服务器端gzip文件上的内容类型设置为原始文件的适当类型:text/javascript
或text/css
,等等。我也尝试了require之外的文件,只是在普通的旧标签中,它们仍然不起作用。
Content-Encoding:gzip
Content-Type:application/x-gzip