本文实例为大家分享了js静态资源文件请求的处理,供大家参考,具体内容如下

html文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="index.css" type='text/css' charset='utf-8'> </head> <body> <div class='box' id='box'></div> <script charset='utf-8' src='index.js'></script> </body> </html>
css文件
*{
margin:0;
padding:0;
}
html,body{
font-size:14px;
color:#000;
}
.box{
margin:50px auto;
width:300px;
height:300px;
background:#e3bd83;
border:10px solid #e0f2be;
}
JS文件
var box = document.getElementById('box');
box.onclick = function(){
this.style.background = "red"
}
server文件
var http = require('http'),
fs = require('fs'),
url = require('url');
//创建一个服务
var server1 = http.createServer(function(req,res){
//解析客户端请求地址中的文件的目录名称以及传递给当前服务器的数据内容
var urlObj = url.parse(req.url,true),
pathname = urlObj["pathname"],
query = urlObj["query"];
//简写 try catch捕获异常 防止请求资源文件不存在 我们不加try catch服务会终止。这样不好,所以我们添加try catch捕获异常
//处理静态资源文件的请求(HTML/CSS/JS...) ->前端路由
var reg = /\.(HTML|JS|CSS|JSON|TXT|ICO)/i;
if(reg.test(pathname)){
//获取请求文件的后缀名
var suffix = reg.exec(pathname)[1].toUpperCase();
//根据请求文件的后缀名获取到当前文件的MIME类型
var suffixMIME = "text/plain";//TXT文本对应的
switch(suffix){
case "HTML":
suffixMIME = "text/html";
break;
case "CSS":
suffixMIME = "text/css";
break;
case "JS":
suffixMIME = "text/javascript";
break;
case "JSON":
suffixMIME = "application/json";
break;
case "ICO":
suffixMIME = "application/octet-stream";
break;
}
try{
//按照指定的目录读取文件中的内容或者代码(读取出来的内容都是字符串格式的)
var conFile = fs.readFileSync("."+pathname,"utf-8");
//重写响应头信息:告诉客户端的浏览器我返回的内容是什么样的MIME类型,指定返回的内容的格式是utf-8,避免出现乱码
res.writeHead(200,{'content-type':suffixMIME+';charset=utf-8'})
//服务端向客户端返回的内容也是字符串
res.end(conFile)
}catch(e){
res.writeHead(404,{'content-type':'text/plain;charset=utf-8'});
res.end("request file is not found")
}
/*
MIME类型:
每一种资源文件都有自己的标识类型,例如:HTML文件的MIME
类型是"text/html".css文件的MIME类型是"text/css"
浏览器会按照代码的MIME类型进行渲染
*/
}
// try{
// var con = fs.readFileSync("."+pathname,"utf-8");
// res.end(con);
// }catch(e){
// res.end("request file is not find")
// }
// if(pathname==="/index.html"){
// var con = fs.readFileSync("./index.html","utf-8");
// res.end(con);
// return;
// }
// if(pathname==="/index.css"){
// con = fs.readFileSync("./index.css","utf-8");
// res.end(con);
// return;
// }
// if(pathname==="/index.js"){
// con = fs.readFileSync("./index.js","utf-8");
// res.end(con);
// return;
// }
})
//为当前的这个服务配置端口
server1.listen(80,function(){
console.log("server is success,listening on 80");
})
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# 静态文件
# 在windows上用nodejs搭建静态文件服务器的简单方法
# Node.js静态文件服务器改进版
# Python的Bottle框架中返回静态文件和JSON对象的方法
# 使用nodejs、Python写的一个简易HTTP静态文件服务器
# 禁止IIS缓存静态文件的方法(png
# html等)
# 客户端
# 自己的
# 都是
# 都有
# 不存在
# 重写
# 大家分享
# 不加
# 创建一个
# 具体内容
# 服务端
# 大家多多
# 每一种
# 出现乱码
# size
# font
# padding
# color
# px
# id
相关文章:
独立制作一个网站多少钱,建立网站需要花多少钱?
制作旅游网站html,怎样注册旅游网站?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
南平网站制作公司,2025年南平市事业单位报名时间?
C#如何序列化对象为XML XmlSerializer用法
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
如何配置支付宝与微信支付功能?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
如何正确选择百度移动适配建站域名?
太原网站制作公司有哪些,网约车营运证查询官网?
如何在建站宝盒中设置产品搜索功能?
如何通过NAT技术实现内网高效建站?
如何快速搭建个人网站并优化SEO?
网站代码制作软件有哪些,如何生成自己网站的代码?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
山东网站制作公司有哪些,山东大源集团官网?
七夕网站制作视频,七夕大促活动怎么报名?
如何自定义建站之星网站的导航菜单样式?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
电商网站制作价格怎么算,网上拍卖流程以及规则?
常州自助建站费用包含哪些项目?
创业网站制作流程,创业网站可靠吗?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何用wdcp快速搭建高效网站?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何用PHP快速搭建高效网站?分步指南
nginx修改上传文件大小限制的方法
如何破解联通资金短缺导致的基站建设难题?
如何在云指建站中生成FTP站点?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
在线制作视频网站免费,都有哪些好的动漫网站?
如何用西部建站助手快速创建专业网站?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何通过服务器快速搭建网站?完整步骤解析
如何在橙子建站上传落地页?操作指南详解
建站主机服务器选购指南:轻量应用与VPS配置解析
如何用VPS主机快速搭建个人网站?
制作证书网站有哪些,全国城建培训中心证书查询官网?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
建站VPS选购需注意哪些关键参数?
建站之星CMS五站合一模板配置与SEO优化指南
如何在万网主机上快速搭建网站?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
*请认真填写需求信息,我们会在24小时内与您取得联系。