1. 程式人生 > 其它 >koa-static + koa-mount 實現多個靜態資源服務

koa-static + koa-mount 實現多個靜態資源服務

技術標籤:學習node.js

在express服務中,靜態服務有

 app.use('/static',express.static('./static'))

類似這種寫法,然後可以支援特定路由下的靜態服務,且可以支援多個不同路由。

然而在koa中,static靜態服務被抽離到了koa-static下,並且是直接對外支援靜態服務。

因此即使設定了多個檔案目錄,最終的對外訪問路由依然是同一個。

而npm文件中則明確沒有引數用來控制路由。但是最後還是給了方案:

可以使用koa-mount來給koa-static新增特定路由:

首先引入包

const Static = require('koa-static');
const Mount = require('koa-mount');

然後設定通用預設的靜態路由服務:

app.use(Static('./web'),{defer:true})

defer引數用於控制此路由解析最後執行,因為這裡的根目錄是 / ,用這種方式可以先解析其他特定路由,防止衝突,這裡可以把index.html之類的檔案放在這裡,用於預設展示

最後可以新增自己想要靜態服務並掛載到特定路由上:

app.use(Mount('/static',Static('./static')))

此時訪問路由就是 '/static/**'