Использование Router.get для рендеринга index.HTML в koa - PullRequest
0 голосов
/ 10 мая 2019

Попытка router.get('/', async ctx => ctx.redirect('index.html')) для начальной маршрутизации, но не удалось.

Есть ли другой способ перенаправления на index.HTML / index.ejs из router.get()?

Я новичок в Коа. Пожалуйста, помогите

1 Ответ

0 голосов
/ 16 мая 2019

Недостаточно просто перенаправить. Вы должны указать 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
  • вам на самом деле не нужно промежуточное ПО для перенаправления (показано выше). коа-статические перенаправления / звонки на index.html
...