require()on gzip' d文件返回错误的MIME类型错误

时间:2014-07-27 02:52:49

标签: javascript requirejs compression gzip mime-types

以下是我的要求电话:

    require( ['config'], function( config ) {
        require( ['main'] );
    });

他们被压缩到一个已经压缩了config.js和main.js的CDN(AWS S3 + CloudFront)。

我的标题的相关部分:

浏览器:

Accept-Encoding:gzip,deflate,sdch

文件:

Content-Encoding:gzip
Content-Type:application/x-gzip

在Safari中,这很好用。在Chrome和Firefox中,我收到此错误:

  

资源解释为脚本但以MIME类型传输   application / x-gzip:“http://sample.com/config.js”。

它永远不会解压缩。 我已经尝试在require config中设置scriptType ='application / x-gzip',但这只会冻结。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

解决方案实际上很简单,嗯!

在服务器端,我将content-type设置为application/x-gzip。这实际上是误导性的,因为这是在压缩之前描述内容(因此,在解压缩之后)。 content-encoding是指定实际压缩步骤的那个。

要解决此问题,我只需将服务器端gzip文件中的content-type设置为原始文件的相应类型:text/javascripttext/css等。