Router.get 在 koa 中渲染 index.HTML 的用法

Router.get usage for rendering index.HTML in koa

已尝试 router.get('/', async ctx => ctx.redirect('index.html')) 进行初始路由,但失败了。

是否有任何其他方法可以从 router.get() 重定向到 index.HTML / index.ejs?

我是 Koa 新手。请帮助

仅仅重定向是不够的。您需要告诉 koa 如何提供静态文件...... koa-static 是一个很好的包。

假设您将两个文件放入子目录 ./public

  • index.html
  • redirect.html(演示重定向)

然后做

npm install koa
npm install koa-static

你的代码基本上应该是这样的:

'use strict';
const koaStatic = require('koa-static');
const Koa = require('koa');
const app = new Koa();

// possible redirect middleware
const redirect = async function(ctx, next) {
    if (ctx.request.url === '/') {
        ctx.redirect('redirected.html')
    } else {
        await next()
    }
}

app.use(redirect); // this will add your redirect middleware
app.use(koaStatic('./public')); // serving static files

app.listen(3000);

备注

  • 如果您现在在浏览器中调用 localhost:3000/index.html ... 您将获得 index.html
  • 的内容
  • 如果你调用 localhost:3000/ ...你会得到 redirect.html
  • 的内容
  • 您实际上不需要重定向中间件(如上所示)。 koa-static 将 / 调用重定向到 index.html