【nodejs】http加载静态文件

来源:互联网 发布:不规则体积计算软件 编辑:程序博客网 时间:2024/06/07 00:27

问题提出:浏览器向后台发送请求后,后台返回一个html界面。但是在浏览器中没有加载js、css等静态资源,查找愿意后发现是Content-Type的原因。浏览器不知道css、js等文件的文件格式,无法成功加载静态文件。所以,需要设置正确的文件格式。


解决方案一:手动设置Content-Type。

server.js

var http = require("http")var fs = require("fs")http.createServer(function(req,res){var path = req.url;console.log("path1: "+path)if(path == "/"){path = "/html/validate.html";}sendFile(res,path);}).listen(3000)function sendFile(res,path){var path = process.cwd()+path;fs.readFile(path,function(err,stdout,stderr){if(!err){var data = stdout;var type = path.substr(path.lastIndexOf(".")+1,path.length)res.writeHead(200,{'Content-type':"text/"+type});//在这里设置文件类型,告诉浏览器解析方式res.write(data);}res.end();})}




解决方案二:使用mime模块,npm install mime.

由于方式的类型很多,会涉及到image、video等文件,mime将这些类型进行了封装。



测试文件的目录结构:



0 0
原创粉丝点击