无法在 handlebars 电子邮件模板中使用 partials
Unable to use partials in handlebars Email templates
我正在尝试在电子邮件模板中使用部分内容。我在应用级别使用 'express-handlebars' 作为模板引擎
exphbs = require('express-handlebars')
var viewsPath = path.join(__dirname, '/app/views');
app.set('views', viewsPath);
var hbs = exphbs.create({
defaultLayout: 'main',
layoutsDir: viewsPath + '/layouts',
partialsDir: viewsPath + '/partials'
});
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
我有一个发送电子邮件的助手,如下所示:
var templateDir = path.join(__dirname, '../views/email_templates');
var EmailTemplate = require('email-templates').EmailTemplate;
function sendEmail(options,done){
var template = new EmailTemplate(templateDir + "/" + options.template);
template.render(options, function(err, result){
var message = {
'to' : [options.toEmail],
'from_email' : 'support@xyz.com',
'from_name' : 'XYZ',
'headers' : {
"Reply-To" : 'support@xyz.com'
},
'subject' : options.subject,
'html' : result.html
};
var to_address = message.to[0].email;
ses_client.sendEmail({
'from' : message.from_email,
'replyTo' : message.from_email,
'subject' : message.subject,
'to' : to_address,
'message' : message.html
},function (err, data,res){
if(err) logger.log('error', 'Error in sending email' + err);
return done();
});
});
}
当我在我的 html.handlebars 模板中包含部分作为 {{> myPartial}} 时,我收到以下错误:找不到部分 myPartial
我已验证部分文件与上面指定的路径相同
"partialsDir: viewsPath + '/partials'"
如何让我的部分内容在电子邮件模板中呈现?
我已经尝试使用 ,但我仍然遇到相同的部分未找到的错误。
我的电子邮件模板终于有了部分可用的部分。我提到了我之前使用的this link and switched to nodemailer npm from the email-templates。
我正在尝试在电子邮件模板中使用部分内容。我在应用级别使用 'express-handlebars' 作为模板引擎
exphbs = require('express-handlebars')
var viewsPath = path.join(__dirname, '/app/views');
app.set('views', viewsPath);
var hbs = exphbs.create({
defaultLayout: 'main',
layoutsDir: viewsPath + '/layouts',
partialsDir: viewsPath + '/partials'
});
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
我有一个发送电子邮件的助手,如下所示:
var templateDir = path.join(__dirname, '../views/email_templates');
var EmailTemplate = require('email-templates').EmailTemplate;
function sendEmail(options,done){
var template = new EmailTemplate(templateDir + "/" + options.template);
template.render(options, function(err, result){
var message = {
'to' : [options.toEmail],
'from_email' : 'support@xyz.com',
'from_name' : 'XYZ',
'headers' : {
"Reply-To" : 'support@xyz.com'
},
'subject' : options.subject,
'html' : result.html
};
var to_address = message.to[0].email;
ses_client.sendEmail({
'from' : message.from_email,
'replyTo' : message.from_email,
'subject' : message.subject,
'to' : to_address,
'message' : message.html
},function (err, data,res){
if(err) logger.log('error', 'Error in sending email' + err);
return done();
});
});
}
当我在我的 html.handlebars 模板中包含部分作为 {{> myPartial}} 时,我收到以下错误:找不到部分 myPartial
我已验证部分文件与上面指定的路径相同 "partialsDir: viewsPath + '/partials'"
如何让我的部分内容在电子邮件模板中呈现?
我已经尝试使用 ,但我仍然遇到相同的部分未找到的错误。
我的电子邮件模板终于有了部分可用的部分。我提到了我之前使用的this link and switched to nodemailer npm from the email-templates。