我使用以下代码设置我的重置电子邮件主题:
Accounts.emailTemplates.resetPassword.subject = function(user, url) {
var ul = Meteor.absoluteUrl();
var myArray = ul.split("//");
var array = myArray[1].split('/');
return "How to reset your password on "+array[0];
};
我希望它包含当前浏览器的网址,但它没有发生。
这就是主题的样子
如何在139.59.9.214重置密码
但理想的结果是:
如何在someName.com上重置密码
其中someName.com
是我的网址。
答案 0 :(得分:0)
我建议稍微处理一下这个问题。您的主机名与您的环境相关联,并且根据您的生产环境的样子,从服务器获取主机名可能并不总是最简单的事情(特别是如果您落后于代理,负载平衡器等)。您可以考虑利用Meteor的Meteor.settings功能,并为每个环境创建一个具有匹配主机名设置的设置文件。例如:
1)创建一个settings_local.json
文件,其中包含以下内容:
{
"private": {
"hostname": "localhost:3000"
}
}
2)创建一个settings.json
文件,其中包含以下内容:
{
"private": {
"hostname": "somename.com"
}
}
3)将代码调整为:
Accounts.emailTemplates.resetPassword.subject = function (user, url) {
const hostname = Meteor.settings.private.hostname;
return `How to reset your password on ${hostname}`;
};
4)在本地工作时,启动流星如:
meteor --settings=settings_local.json
5)部署到生产环境时,请确保考虑内容或settings.json
文件。如何执行此操作取决于您如何部署到您的prod环境。例如,如果使用mup,它会自动查找要在生产中使用的settings.json
。 MDG的Galaxy也会这样做。