2012-04-08 1 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 
}); 

、私はクロームで、次のエラーを取得しています: 「リソースは、スクリプトとして解釈されず、MIMEタイプapplicationで転送します/オクテットストリーム '

私は間違っていますか?

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

+0

あなたの返信に感謝します.. と、これは私がresと何かをしている唯一の2つの場所です... – udidu

答えて

2

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

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

のかres.contentType()にファイル拡張子を渡します

次のいずれかのコンテンツタイプに自動的に設定する必要があります。

res.contentType('js'); 
+0

ありがとう!できます! – udidu

+0

ご使用のNodeのバージョンは?私はUbuntu提供の0.4.7で、それは私のために働いていません。 – alexismorin