koa框架15 koa-static静态资源
安装
npm i koa-static
一般建议创建一个目录专门保存静态文件,比如目录名:static
static一般放在最末尾use激活,表示如果前面的路由设置,或其他的都没有对应的,就进入的请求文件这。
const Koa = require("koa");
const static = require("koa-static");
const server = new Koa();
server.listen(8080);
server.use(require("./router"));
server.use(static("./static", {
maxage: 30 * 24 * 60 * 60 * 1000, //30天缓存周期
index: "index.html" //默认文件
}))
static有两个参数,第一个为静态文件的路径,我们指定一个目录。第二个是配置文件,键值对,两个属性,一个是maxage,一个是index
maxage
缓存时间,我们都知道浏览器会缓存文件,这个文件一般都是后台给浏览器一个信息,这个文件可以缓存几天,然后浏览器将文件缓存,下次进入的时候,浏览器还是会发送一个请求给后台并且附带一个时间,如果时间没有过期,那么后端返回304,body为空。
如果过期了,后端会重新发送新的内容。
maxage是一个毫秒值,我们可以自由设置过期的时间。
index
默认返回的内容,如果请求的是/
根目录,可以指定返回一个默认文件,不过用的也不多。
针对不同文件进行缓存
图片文件和js文件,一般图片文件很少变化,js文件确容易变化,所以对应的缓存时间也不相同,我们可以针对性的设置。
router.all(/\.(jpg|png|gif)$/i, static("./static", {
maxage: 10 * 24 * 60 * 60 * 1000 //10天
}))
router.all(/\.css$/i, static("./static", {
maxage: 7 * 24 * 60 * 60 * 1000 //7天
}))
router.all(/\.js$/i, static("./static", {
maxage: 1 * 24 * 60 * 60 * 1000 //1天
}))
router.all(/\.html$/i, static("./static", {
maxage: 1 * 24 * 60 * 60 * 1000 //1天
}))
router.all("*", static("./static", {
maxage: 7 * 24 * 60 * 60 * 1000 //7天
}))
利用路由的all方法,所有的路径请求都要经过他,然后通过正则判断是什么文件,传入不同的static方法,每个方法都有自己的缓存时间,这样就达到了不同文件,缓存时间不同。
由于9.4.0时,通配符取消了,改为了正则的字符,于是*要改为"/(.*)"
这样才行,不然会报错。
router.all("/(.*)", static("./static", {
maxage: 7 * 24 * 60 * 60 * 1000 //7天
}))
分类:
Node
标签:
nodekoakoa-static
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据