使用电子生成器后 EJS 不呈现
EJS not rendering after using electron builder
我正在尝试在我的 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
不呈现,只是打印未定义的空白页。
知道为什么会发生这种情况以及如何解决它吗?
为了后代:我想通了(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 作为“根”选项参数包含在内...我猜这是一个错误。
我正在尝试在我的 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
不呈现,只是打印未定义的空白页。
知道为什么会发生这种情况以及如何解决它吗?
为了后代:我想通了(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 作为“根”选项参数包含在内...我猜这是一个错误。