javascript - 使用 Electron 生成器后 EJS 未呈现

标签 javascript node.js electron ejs electron-builder

我正在尝试渲染 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/

相关文章:

JavaScript 输入类型编号限制为值 1 和 2

javascript - 如何在 Node js中获取客户端计算机名称

node.js - 在具有共享卷的 docker 上执行 `ls` 结果为 "No such file or directory"

node.js - 在 koa 中使用 express 中间件

docker - docker 有 Windows 容器来构建 Windows 应用程序吗?

javascript - JS Require 语句留下 undefined variable

javascript - Watson Conversation 响应中的数学计算

javascript - Cypress : choose username and environment from a list

javascript - jQuery 数组问题

node.js - 如何阻止类/函数继续在 Node.js 中执行代码