详解Nodejs之静态资源处理(2)

/** * 使用express来实现对于静态资源的控制。 */ let express = require('express'); let fs = require('fs'); let path = require('path'); var app = express(); app.use(express.static(path.join(__dirname, './public'))); app.all('https://www.jb51.net/', function(req, res){ console.log("======================================="); console.log("请求路径:"+req.url); var filename = req.url.split('https://www.jb51.net/')[req.url.split('https://www.jb51.net/').length-1]; var suffix = req.url.split('.')[req.url.split('.').length-1]; console.log("文件名:", filename); if(req.url==='https://www.jb51.net/'){ res.writeHead(200, {'Content-Type': 'text/html'}); res.end(get_file_content(path.join(__dirname, 'html', 'index.html'))); }else if(suffix==='css'){ res.writeHead(200, {'Content-Type': 'text/css'}); res.end(get_file_content(path.join(__dirname, 'public', 'css', filename))); }else if(suffix in ['gif', 'jpeg', 'jpg', 'png']) { res.writeHead(200, {'Content-Type': 'image/'+suffix}); res.end(get_file_content(path.join(__dirname, 'public', 'images', filename))); } }); function get_file_content(filepath){ return fs.readFileSync(filepath); } app.listen(8080);

index.html

因为刚才使用了静态资源控制,也就是说我们可以简化HTML页面中对于静态资源的路径拼写。比如:

原来在HTML页面中要这么写:

<img src='https://www.jb51.net/public/images/1.gif' />

现在只需要这么写了:

<img src='https://www.jb51.net/images/1.gif' />

看起来就是少了个 /public, 但是实际上通过这一点就可以表明express 其实帮我们省去了很多枯燥的工作内容。

然后打开浏览器就可以看到具体的静态资源内容了。

express控制静态资源

那么对于不同的图片类型的支持程度如何呢?

下面修改一下HTML页面:

<html> <head> <meta charset="UTF-8"> <title>My Index Page</title> <link href="https://www.jb51.net/css/index.css" > </head> <body> <h1>It Works.</h1> <hr> <img src="https://www.jb51.net/images/1.gif" /><br> <img src="https://www.jb51.net/images/2.jpg" alt=""><br> <img src="https://www.jb51.net/images/3.png" alt=""><br> </body> </html>

打开浏览器查看对于gif, png, jpg的支持如何?

针对不同类型图片的支持

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyxxzd.html