Node.js - Ressource interpretiert als Schrift, aber übertragen mit dem MIME-Typ text/plain

Vorneweg: ich bin nicht mit Express.

Mit, dass aus dem Weg, wenn ich es lade meine index.html Datei rekursiv readFile jede angehängte Datei, z.B. meine CSS-und JS-Seiten. Aber es gibt immer diesen Fehler in meinem inspector (Chrome):

Ressource interpretiert als Schrift, aber übertragen mit dem MIME-Typ text/plain

Ich habe absolut keine Ahnung, warum es dies tut. Hier ist mein code:

var http = require('http');
var querystring = require('querystring');
var fs = require('fs');
var url = require('url');

function route(handle, pathname, response, request){
console.log("About to route a request for " + pathname);

if (typeof handle[pathname] === "function"){        
    handle[pathname](response, request);
    } else {

    var file_path = "";

    //parses the url request for a file and pulls the pathname
    var url_request = url.parse(request.url).pathname;      
    var tmp  = url_request.lastIndexOf(".");
    var extension  = url_request.substring((tmp + 1));

    file_path = url_request.replace("/", "");

    //load needed pages and static files
    fs.readFile(file_path, function (error, contents){
        if(error){
          console.log('DIE!');
          console.log(error);
          response.writeHeader(500, {"Content-Type": "text/html"});  
          response.end("<h1>FS READ FILE ERROR: Internal Server Error!</h1>");    
        }
        else{ 
          console.log('SUCCESS!');
          //set content type
          if (extension === 'html') response.writeHeader(200, {"Content-Type": 'text/html'});
          else if (extension === 'htm') response.writeHeader(200, {"Content-Type": 'text/html'});
          else if (extension === 'css') response.writeHeader(200, {"Content-Type": 'text/css'});
          else if (extension === 'js') response.writeHeader(200, {"Content-Type": 'text/javascript'});
          else if (extension === 'png') response.writeHeader(200, {"Content-Type": 'image/png'});
          else if (extension === 'jpg') response.writeHeader(200, {"Content-Type": 'image/jpg'});
          else if (extension === 'jpeg') response.writeHeader(200, {"Content-Type": 'image/jpeg'});
          else { console.log("NO CORRECT EXTENSION")};
            console.log(extension);
            response.end(contents);
        }

        response.end();  
    });
    response.end();
}
}

exports.route = route;

Wie kann ich dieses Problem beheben? Das hat aufgehört, mein Projekt in seiner tracks.

Hinweis: dies ist ein Fortschreiten von einem früheren problem hatte ich auch hier die Rede: Node.js falscher Pfad Probleme

  • First off, ist es writeHead, nicht writeHeader. Next — Huch, das if. Sollten Sie ein Objekt verwenden. response.writeHead(200, {'Content-Type': mimeTypes[extension]});.
  • Guter Fang auf der writeHead. Aber wie der mime, siehe meine Vorherige Frage an stackoverflow.com/questions/18004512/... Das war, wie ich hatte es ursprünglich. Es nicht einen Unterschied machen. Dies ist meine zweite große iteration.
  • Haben Sie versucht, den Besuch der Skript-URL direkt? Funktioniert es?
  • Yeah, das pathing alles richtig (wenn es das ist was du meinst). Und wie am besten wie ich kann sagen, von diesem dummen Fehler, er liest es der richtige Weg, aber dann scheißt das Bett und beschließt, es zu ändern.
  • Warum ist, dass die Letzte Antwort.end () - Anweisung gibt es? Nicht schließen, dass die Antwort vor dem fs.readFile abgeschlossen?
InformationsquelleAutor JDillon522 | 2013-08-02
Schreibe einen Kommentar