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タイプ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);
    });
4

1 に答える 1

2

私が見ることができることから、Expressのドキュメントがここで間違っている可能性があるように見えます。彼らは、mimeタイプを与えることはうまくいくとはっきりと言っていますが、それはあなたや私のテストでは起こっていません。

コンテンツタイプを自動的に設定する必要があります。

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

または、ファイル拡張子をに渡しますres.contentType()

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