2012-04-08 317 views
0

我正在为节点js写一个组合器模块。 我用快递来得到像下面这样的文件:JavaScript的MIME类型是application/octet-stream nodejs

app.get('/combine/js/?files=scripts/file1.js;scripts/file2.js', function(req, res){ 
    res.contentType('text/javascript'); 
    res.end(content); //the combined files content 
}); 

现在,当加载页面时,我在Chrome发现了以下错误: “资源解释为脚本,但与MIME类型的应用程序转移/ octet-stream'

我在做什么错?

UPDATE:这是响应内容完整app.get组合功能...

app.get('/combiner/:type/?', function(req, res){ 
     var type = req.params.type; 
     var files = []; 
     files = req.query.files.split(';'); 
     var content = combiner.combine(type, files); 
     switch(type){ 
       case 'js': res.contentType('text/javascript'); break; 
      case 'css': res.contentType('text/css'); break; 
     } 
     content = content.replace('<:=appid=:>', vars.appid); 
     res.end(content); 
    }); 
+0

显然这是一个缩短的示例。在调用'contentType'之前你是否用'res'做过其他事情? – loganfsmyth 2012-04-08 02:58:25

+0

感谢您的回复.. 不,这是唯一的两个地方,我正在做一些与水库... – udidu 2012-04-08 08:49:48

回答

2

从我所看到的,它看起来像高速文档可能是错在这里。他们明确地表示,给予mime类型会起作用,但这并不是为了你或我在测试中发生的。

您应该设置内容类型自动:

res.header('Content-Type', 'application/javascript'); 

或文件扩展名传递给res.contentType()

res.contentType('js'); 
+0

谢谢!有用! – udidu 2012-04-13 00:30:17

+0

您正在使用哪个版本的节点?我在Ubuntu提供的0.4.7上,它不适合我。 – alexismorin 2012-10-02 09:29:38