gpt4 book ai didi

javascript - 为什么我不能从 Koa 路由器提供静态文件?

转载 作者:行者123 更新时间:2023-11-30 19:53:06 24 4
gpt4 key购买 nike

为什么在以下情况下 koa-static 无法与 koa-router 一起工作?

const Koa = require("koa")
const serve = require("koa-static")
const Router = require("koa-router")

const app = new Koa()
const router = new Router()

// fails with 404... why?
router.use(serve("public"))

// // this, on the other hand, works
// app.use(serve("public"))

app.use(router.middleware())
app.listen(8080)

// browse to "http://localhost:8080/testfile.txt"

我做了这个 GitHub 存储库来演示这个问题:koa-router-static-issue

最佳答案

这基本上就是我们在应用程序中配置内容的方式。

它使用 koa-mount 将静态文件服务器挂载到特定的根 URL。如果您的静态文件 URL 与路由的命名空间重叠,则静态文件获胜。

const Koa    = require('koa')
const Router = require('koa-router')
const serve = require('koa-static')
const mount = require('koa-mount')

const app = new Koa()
const router = new Router()

router.get('/public/foobar.txt', (ctx,next) => {

ctx.body = "Ta-Da!"
ctx.status = 200

return;
})

app.use( mount( '/public', serve('./public') ) ) ;
app.use( router.middleware())

app.listen( 8080 ) ;

关于javascript - 为什么我不能从 Koa 路由器提供静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54285727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com