最近准备用koa搭建个人博客网站,但在开发前就遇到了很多头疼的问题,比如用koa-views渲染模板,代码和官网的例子一模一样,但就是渲染不出来,提示找不到模板路径,真是头疼,研究了一天也没解决。
现在解决了,索性把解决方法简单记录一下,当时网上搜索了很久也找不到原因,最后还是在webpack官网闲逛的时候发现了问题的根源,所以说平时多逛逛技术网站还是有帮助的。
用koa-views渲染模板时配置的第一个参数是模板文件夹根路径,koa-views仓库里提供的路径是:
views(__dirname + ‘/views‘, { map: { html: ‘swig‘ } }
koa官方给出的示例代码,肯定是对的。但是就是这短短几行代码,到了我手上,偏偏看不到效果。根据调试的结果,才发现路径根本不对,views的第一个参数要求本地路径,而我的代码输出的是/views。问题出在了__dirname上!
点开编译后的代码查看__dirname到底被编译成了什么,一看吓一跳,不是文件夹的路径,而是/。肯定又是webpack的问题!立即跑去webpack官网溜达一圈,发现了一个配置选项:node。原来__dirname的默认值是"mock",即/。要使用普通Node的__dirname,需要设置:
node: { __dirname: false }
这样的话生成的路径就是本地路径了。
时间: 2024-12-15 04:18:20