eggjs 模板渲染nunjucks 部署到docker后 访问路由 报500错误

使用的eggjs文档提供的demo,并且成功部署到了docker,服务接口可以正常访问,但是模板渲染接口报错500

demo

controll.js

`

'use strict';
const Controller = require('egg').Controller;
class Index extends Controller {
  async index() {
    const ctx = this.ctx;
    const page = ctx.query.page || 1;
    const newsList = await ctx.service.index.list(page);
    await ctx.render('index.tpl', { list: newsList });
  }
}
module.exports = Home;

`

default.config.js

`

exports.view = {
defaultViewEngine: 'nunjucks',
mapping: {
  '.tpl': 'nunjucks'
},

};
`

router

`

router.get('/', controller.index.index);

`

view下是index.tpl模板

然后本地访问是没问题的,但是部署到docker后就只能访问controll中的服务接口,模板路由就会报错500
tip:部署到docker后只运行了egg-script start
是否是因为本地启动已经进行了模板编译?也就是把.tpl的模板编译成了html到内存中,部署到docker后 是不是要接入webpack把tpl打包到public中?才能访问?

阅读 3.1k
1 个回答

是的自己经过了测试 线上需要提前构建 tpl是模板文件必须要编译成html或者直接在constroll中映射成html

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题