【问题标题】:EJS not rendering after using electron builder使用电子生成器后 EJS 不渲染
【发布时间】: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?

标签: javascript node.js electron ejs electron-builder


【解决方案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 库,它对我有用,因为我以前的方法只是占用了太多时间来调试。但感谢您解决它。
猜你喜欢
  • 1970-01-01
  • 2017-05-09
  • 2019-02-03
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 2023-03-28
  • 2018-12-26
相关资源
最近更新 更多