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

現在,當加載頁面時,我在Chrome發現了以下錯誤: 「資源解釋爲腳本,但與MIME類型的應用程序轉移/ octet-stream'

我在做什麼錯?

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 2012-04-08 02:58:25

+0

感謝您的回覆.. 不,這是唯一的兩個地方,我正在做一些與水庫... – udidu 2012-04-08 08:49:48

回答

2

從我所看到的,它看起來像高速文檔可能是錯在這裏。他們明確地表示,給予mime類型會起作用,但這並不是爲了你或我在測試中發生的。

您應該設置內容類型自動:

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

或文件擴展名傳遞給res.contentType()

res.contentType('js'); 
+0

謝謝!有用! – udidu 2012-04-13 00:30:17

+0

您正在使用哪個版本的節點?我在Ubuntu提供的0.4.7上,它不適合我。 – alexismorin 2012-10-02 09:29:38