0

我正在为节点 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 类型应用程序/八位字节流传输”

我究竟做错了什么?

更新:这是响应内容的完整 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);
    });
4

1 回答 1

2

据我所知,这里的 Express 文档可能有误。他们清楚地说,给出 mime 类型会起作用,但这不会发生在你身上,或者在我的测试中。

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

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

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

res.contentType('js');
于 2012-04-08T18:45:40.077 回答