【问题标题】:JavaScript MIME type is application/octet-stream nodejsJavaScript MIME 类型是 application/octet-stream nodejs
【发布时间】:2012-04-08 00:38:04
【问题描述】:

我正在为 node 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);
    });

【问题讨论】:

  • 显然这是一个缩短的示例。在致电contentType 之前,您是否对res 进行了其他操作?
  • 感谢您的回复.. 不,这是我正在使用 res 做某事的唯一两个地方...

标签: node.js express


【解决方案1】:

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

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

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

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

res.contentType('js');

【讨论】:

  • 您使用的是哪个版本的 Node?我在 Ubuntu 提供的 0.4.7 上,但它不适合我。
猜你喜欢
  • 2011-09-19
  • 2021-06-12
  • 2012-03-31
  • 2012-04-16
  • 1970-01-01
  • 2018-09-11
  • 2021-11-15
  • 1970-01-01
  • 2010-11-04
相关资源
最近更新 更多