【问题标题】:How do I map the root without overwriting other paths with koa-mount?如何在不使用 koa-mount 覆盖其他路径的情况下映射根目录?
【发布时间】:2021-04-15 16:36:51
【问题描述】:

我有以下结构...

- static
  - dashboard.html

但是当我使用以下...

mainApp.use(mount('/', async (ctx)=>{
    ...
    ctx.body = await pug.render('index', {
      user: userInfo
    }, true);
}));
mainApp.use(mount('/static', serve(__dirname+"/static")));

但是当我运行它时,它会返回 pug 渲染,而不是静态文件夹中的 html 文件。如果我注释掉...

// mainApp.use(mount('/', async (ctx)=>{
//     ...
//     ctx.body = await pug.render('index', {
//       user: userInfo
//     }, true);
// }));
mainApp.use(mount('/static', serve(__dirname+"/static")));

我可以得到静态文件,但现在根目录下没有任何渲染。

【问题讨论】:

    标签: koa


    【解决方案1】:

    您以错误的方式使用模板引擎;使用 koa-views:

    const views = require('koa-views');
    const router = require('@koa/router')();
    
    const Koa = require('koa');
    const app = new Koa();
    
    // middleware
    
    app.use(views('./views'), {
      map: { html: 'pug' }
    }));
    
    // route definitions
    
    router.get('/', list)
    
    app.use(router.routes());
    
    async function list(ctx) {
      await ctx.render('list', { posts: posts });
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多