摘要:吼,所以我做了,和一样,都是对的一层封装,只不过用编写,对支持良好。
其实还是得按自个儿的需求来。
koa-static 有啥问题么koa-static是一个非常轻量的koa中间件,能够迅速的搭建起一个静态文件服务器,通常我们把静态文件都放进public,并且通过类似koa-static这样的东西来将我们的public作为静态目录,这样的话,我们就能直接通过根路由进行访问了。
emmmm,扯多了。回到正轨
首先koa-static不能映射到其他的路由上,一般是跟路由,比如访问 public/main.html(假设 public 为静态目录),那么就可以通过 host:port/main.html 进行访问得到 main.html,但是有时候我不想映射到根路由,这时候,koa-static就显得力不从心了。
第二个问题是koa-static只支持GET和HEAD两个 HTTP 方法来进行访问,这在大多数场景下是有用的,但是难免会遇到一些特别的场景,比如你想用POST方法来拿到服务器上的静态文件(如果你想)。
awesome-static吼,所以我做了awesome-static,awesome-static和koa-static一样,都是对 koa-send的一层封装,只不过awesome-static用 Typescript编写,对 VSCode 支持良好。
awesome-static扩充了koa-static的 options,添加了两个字段
route
allowMethods
route为要映射到的路由,allowMethods是要允许的 HTTP 方法
这两个字段都是可选的,route 的默认值就是根路由,allowMethods 的默认值为 HEAD 和 GET ,所以你能像使用 koa-static 一样的使用 awesome-static。
看一下使用方法
const Koa = require("koa"); const app = new Koa(); const { AwesomeStatic } = require("awesome-static"); app.use(AwesomeStatic("public")); app.listen(8888);
在 public 下有一个 html 文件,下面是 public 的目录结构
public └── main.html
在启动服务器后就能通过http://localhost:8888/main.html进行访问了
现在来配置一下 route
const Koa = require("koa"); const app = new Koa(); const { AwesomeStatic } = require("awesome-static"); app.use(AwesomeStatic("public", { route:"static" })); app.listen(8888);
配置了 route 为 static 那么现在访问 main.html 就需要访问http://localhost:8888/static/main.html
如果再配置一下 allowMethods ,来设置一下允许的 HTTP 方法,让它只能通过POST 来访问
const Koa = require("koa"); const app = new Koa(); const { AwesomeStatic } = require("awesome-static"); app.use(AwesomeStatic("public", { route:"static", allowMethods:["POST"] })); app.listen(8888);
现在再通过 http://localhost:8888/static/main.html 就会去 404 了~
来模拟一个 POST 请求
curl http://localhost:8888/static/main.html -X POST
Output:
GithubDocument Main
https://github.com/HaoDaWang/awesome-static
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/101417.html
摘要:吼,所以我做了,和一样,都是对的一层封装,只不过用编写,对支持良好。 其实还是得按自个儿的需求来。 koa-static 有啥问题么 koa-static是一个非常轻量的koa中间件,能够迅速的搭建起一个静态文件服务器,通常我们把静态文件都放进public,并且通过类似koa-static这样的东西来将我们的public作为静态目录,这样的话,我们就能直接通过根路由进行访问了。 emm...
摘要:从中间件学习搭建静态文件服务器原文地址中有说明它只是的一个包装查看的源码可以发现,它做的工作是根据传入的查找文件是否存在,如果存在就创建一个流,不存在就抛出错误。 从koa-static中间件学习搭建静态文件服务器 原文地址 koa-send Static file serving middleware koa-static中有说明它只是koa-send的一个包装 const send...
摘要:背景最近在做一个基于的微信公众平台脚手架,由于我只有一个域名,现在同时有好几个应用在上面挂载着,所以只能做一下反向代理,可是反向代理只能代理动态文件,对于静态资源貌似没有什么好的解决方法本文针对以上问题进行逐步解决,通过修改相关配置,并结合 背景 最近在做一个基于koa的微信公众平台脚手架,由于我只有一个域名demozhan.com,现在同时有好几个web应用在上面挂载着,所以只能做一...
摘要:背景最近在做一个基于的微信公众平台脚手架,由于我只有一个域名,现在同时有好几个应用在上面挂载着,所以只能做一下反向代理,可是反向代理只能代理动态文件,对于静态资源貌似没有什么好的解决方法本文针对以上问题进行逐步解决,通过修改相关配置,并结合 背景 最近在做一个基于koa的微信公众平台脚手架,由于我只有一个域名demozhan.com,现在同时有好几个web应用在上面挂载着,所以只能做一...
阅读 2915·2021-11-11 16:55
阅读 500·2021-09-27 13:36
阅读 1032·2021-09-22 15:35
阅读 2836·2019-08-30 12:46
阅读 3099·2019-08-26 17:02
阅读 1801·2019-08-26 11:56
阅读 1277·2019-08-26 11:47
阅读 407·2019-08-23 17:01