静态资源文件管理
来源:互联网 发布:服装面料软件 编辑:程序博客网 时间:2024/06/07 01:41
我们知道不同于Apache的是,nodejs中文件的物理地址与其真实的地址完全没有关系,也就是说,如果你在地址栏输入:
我们可以访问到一个真实地址完全没有关系的文件,这是为什么嘞?因为我们可以在代码中这样写:
var http = require('http');var url = require('url');var fs = require('fs');var server = http.createServer(function (req,res) { //先获取的向服务器请求的路径 var pathname = url.parse(req.url).pathname; //然后进行判断 if(pathname == '/aaa/bb'){ //当符合条件时,我们可以读取任意我们想要的文件 fs.readfile('./static/1.html',function(err,data){ res.end(data); }) }})
现在我们想实现一个目标,就是我们在地址栏输入路径输入的就是对应我们需要的文件
文件结构如下:
在staticfind.js代码中控制mystatic为根目录,在地址输入的路径对应相应文件
代码如下:
//模拟apache静态文件管理的功能var http = require('http');var url = require('url');var fs = require('fs');var path = require('path');var server = http.createServer(function (req,res) { //先获取的向服务器传入的路径 var pathname = url.parse(req.url).pathname; //对小图标的请求不做处理 if(pathname == '/favicon.ico'){ return; } console.log(pathname); //许多用户不会直接输入主页面的名称。手动添加 if(pathname == '/'){ pathname = '/1.html'; } //每次向服务器发送请求时,获取其文件的拓展名 var extendname = path.extname(pathname); console.log(extendname); //读取文件 fs.readFile('./mystatic/'+pathname,function (err,data) { if(err){ console.log(111); //当文件夹中不存在用户输入的界面时,为用户弹出404界面 fs.readFile('./mystatic/404.html',function (err,data) { res.end(data); }) //返回404页面,但需要注意的是这里是一个异步操作,当文件还未读取完毕就会继续执行下面的语句,所以我们必须在此之前将它返回 return; } var mime = getMime(extendname); console.log(mime); res.writeHead(200,{'Content-type':mime+';charset=UTF8'}); res.end(data); })}).listen(1400,'127.0.0.1');//这里我们遇到一个问题,当我们所加载的文件中嵌套这其他类型的文件,我们需要在响应头中辨别它的类别function getMime(extendname) { switch (extendname){ case './html': return 'text/html;' break; case './jpg': return 'image/jpg'; break; case './png': return 'image/png'; break; case '.css': return 'text/css'; break; }}console.log(1);
阅读全文
0 0
- 静态资源文件管理
- nodejs静态资源文件管理
- SpringBoot 静态资源版本管理
- express静态文件管理
- 管理静态文件
- Django引入静态资源文件
- springboot处理静态资源文件
- TP5引入静态资源文件
- thinkphp5 静态资源文件引入
- Android资源文件的管理
- tomcat下的静态资源文件压缩
- django模版文件中访问静态资源
- Spring对静态资源文件的访问
- springmvc找不到静态资源文件等
- beego实现静态文件资源下载
- (3) Spring boot静态资源文件获取
- Spring Boot 读取静态资源文件
- spring mvc配置静态资源文件
- Linux基础命令详解之权限管理
- HDU--6063--RXD and math
- java作业gui1
- Socks
- 安卓使用videoview进行音频、视频播放,及播放控制
- 静态资源文件管理
- Hibernate事务处理
- 01 Spring Boot 核心
- 练习3
- 找工作篇
- springMvc视图化,国际化,静态资源处理
- 顺序表的实现
- caffe源码阅读之layer(2)——DataLayer层(2)
- LWIP 实现DHCP及DNS功能