2012-04-08 2 views
0

Ich schreibe ein Combiner-Modul für Knoten js. Ich verwende ausdrücklich die Dateien wie folgt zu erhalten:JavaScript MIME-Typ ist Anwendung/Oktett-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 
}); 

Wenn nun die Seite Ich erhalte die folgenden Fehler in Chrom geladen wird: ‚Ressource als Script interpretiert, sondern mit MIME-Typ-Anwendung übertragen/octet-stream '

Was mache ich falsch?

UPDATE: das ist die volle app.get Kombinierer-Funktion, die den Inhalt response ...

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

Offensichtlich ist dies eine verkürzte Probe. Machst du etwas anderes mit 'res' bevor du' contentType' nennst? – loganfsmyth

+0

danke für deine Antwort .. und nein, das ist die einzige zwei Orte, an denen ich etwas mit Res ... – udidu

Antwort

2

Von dem, was ich sehen kann, es sieht aus wie die Express-Dokumente hier falsch sein könnten. Sie sagen klar, dass das Geben des Mime-Typs funktionieren wird, aber das passiert nicht für dich oder mich in meinen Tests.

Sie sollten entweder der Content-Type automatisch eingestellt:

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

oder die Dateierweiterung res.contentType() passieren.

res.contentType('js'); 
+0

danke! Es klappt! – udidu

+0

Welche Version von Node verwenden Sie? Ich bin auf der Ubuntu-Version 0.4.7 und es funktioniert nicht für mich. – alexismorin