首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能从Koa路由器提供静态文件?

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

Stack Overflow用户
提问于 2019-01-21 16:12:03
回答 1查看 3.3K关注 0票数 7

在以下情况下,为什么koa-static不能与koa-router一起工作

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-01 09:32:58

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

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

代码语言:javascript
复制
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 ) ;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54285727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档