我正在尝试渲染 ejs
文件在我的 electron.js
应用程序。我正在使用以下框架加载 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
不呈现,只是一个带有未定义打印的空白页面。任何想法为什么会发生这种情况以及如何解决它?
最佳答案
对于后代:我想通了(ish)
出于某种原因,ejs.renderFile()
使用 electron-builder
构建应用程序时需要绝对路径.
所以,你需要这样做:${path.join(__dirname,
./${后果}.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”选项参数......我猜有一个错误。
关于javascript - 使用 Electron 生成器后 EJS 未呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64589372/