我正在为节点js编写一个组合器模块。 我正在使用express来获取如下文件:
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类型application / octet-stream'
进行传输我做错了什么?
更新:这是响应内容的完整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 :(得分:2)
从我所看到的情况来看,Express文档可能在这里出错了。他们清楚地说,给mime类型会起作用,但这不会发生在你或我的测试中。
您应该自动设置内容类型:
res.header('Content-Type', 'application/javascript');
或将文件扩展名传递给res.contentType()
。
res.contentType('js');