首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用电子生成器后,EJS不能渲染

使用电子生成器后,EJS不能渲染
EN

Stack Overflow用户
提问于 2020-10-29 18:36:00
回答 1查看 81关注 0票数 4

我正在尝试在我的electron.js应用程序中呈现ejs文件。我使用以下框架加载ejs文件:

代码语言:javascript
运行
复制
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不会呈现,只是一个未定义打印的空白页面。

你知道为什么会发生这种情况,以及如何解决吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-30 01:48:21

给后人的:我想通了(大概)

由于某些原因,当应用程序使用electron-builder构建时,ejs.renderFile()需要一个绝对路径。

因此,您需要这样做:${path.join(__dirname, ./${.ejs})}

代码语言:javascript
运行
复制
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被包含在“根”选项参数中……我猜这是一个bug。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64589372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档