摘要:吼,所以我做了,和一樣,都是對的一層封裝,只不過用編寫,對支持良好。
其實還是得按自個兒的需求來。
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101415.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應用在上面掛載著,所以只能做一...
閱讀 3405·2021-11-24 10:30
閱讀 3275·2021-11-22 15:29
閱讀 3709·2021-10-28 09:32
閱讀 1261·2021-09-07 10:22
閱讀 3342·2019-08-30 15:55
閱讀 3624·2019-08-30 15:54
閱讀 3500·2019-08-30 15:54
閱讀 2837·2019-08-30 15:44