gpt4 book ai didi

Node.js - 资源解释为脚本但使用 MIME 类型文本/纯文本传输

转载 作者:搜寻专家 更新时间:2023-10-31 22:31:08 26 4
gpt4 key购买 nike

首先:我没有使用 Express。

除此之外,当我加载我的 index.html 文件时,它递归地 readFile 每个附加文件,例如我的 CSS 和 JS 页面。但它总是在我的检查器(Chrome)中返回这个错误:

Resource interpreted as Script but transferred with MIME type text/plain

我完全不知道它为什么要这样做。这是我的代码:

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;

我该如何解决这个问题?这使我的项目停止了。

注意:这是我之前在这里讨论的一个问题的进展:Node.js incorrect path problems

最佳答案

尝试注释掉最后一个 response.end。不要认为您需要它。

    response.end();  
});
// response.end();
}
exports.route = route;

我怀疑 response.end 在 fs.readfile 回调中的回调有时间执行之前立即被调用,可能关闭服务器上的 header 没有给出正确的 header "Content-Type": 'text/javascript ' 一个被发送的机会..

在你的代码上试过了,对我有用..

关于Node.js - 资源解释为脚本但使用 MIME 类型文本/纯文本传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18006730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com