使用电子生成器后 EJS 不渲染
Posted
技术标签:
【中文标题】使用电子生成器后 EJS 不渲染【英文标题】:EJS not rendering after using electron builder 【发布时间】:2021-02-11 19:03:25 【问题描述】:我正在尝试在我的 electron.js
应用程序中呈现 ejs
文件。我正在使用以下框架加载 ejs 文件:
const ejs = require('ejs')
ejs.renderFile('views/list.ejs', data: listData , root: __dirname , function (err, str)
if (err)
console.log(err);
mainWindow.loadURL('data:text/html;charset=utf-8,' + encodeURI(str));
);
现在这在开发环境中可以正常工作(即使用electron .
命令),但是当我使用electron-builder
构建应用程序并运行应用程序时,ejs
不会呈现并且只是一个空白页面未定义的打印。
任何想法为什么会发生这种情况以及如何解决它?
【问题讨论】:
我也有这个问题!你有没有找到解决方案@akshayks? 【参考方案1】:为了后代:我想通了(ish)
由于某种原因,ejs.renderFile()
在使用electron-builder
构建应用时需要绝对路径。
所以,你需要这样做:
$path.join(__dirname,
./$consequence.ejs)
ejs.renderFile(`$path.join(__dirname, `views/list.ejs`)`, data: listData , root: __dirname ,
function (err, str)
if (err)
console.log(err);
mainWindow.loadURL('data:text/html;charset=utf-8,' + encodeURI(str));
);
至于为什么会出现这种情况,我不知道(因为 __dirname 包含在“root”选项参数中……我猜有一个错误。
【讨论】:
我最终在我的项目中使用了ejs-electron
库,它对我有用,因为我以前的方法只是占用了太多时间来调试。但感谢您解决它。以上是关于使用电子生成器后 EJS 不渲染的主要内容,如果未能解决你的问题,请参考以下文章