我遇到问题,无法在production
中为我的nodemailer / handlebars设置找到正确的路径设置。
传输程序已连接到API请求,以便发送自动电子邮件。
在development
中,我将按原样保留配置,因此基本上我会遇到这种情况:
module.exports.ViewOption = (transport, hbs) => {
transport.use('compile', hbs({
viewEngine: {
extname: '.hbs',
partialsDir: 'static/js/mail/views/email',
layoutsDir: 'static/js/mail/views',
defaultLayout: 'contacts'
},
viewPath: 'static/js/mail/views',
extName: '.hbs'
}));
}
这里没有问题,一切正常。
在Now
上,我收到此异常:
该请求返回一个正确的响应,如您在此处看到的那样:
因此,我得出结论,问题与在传输器配置上设置的错误路径有关。我不能像在dev
上那样生活,因为它在/var/tasks
上重定向。问题是我尝试了不同的方法来正确定位文件路径,但是没有成功:
__dirname +'<path>'
/<path>...
之类的平原上_next
生产目录中设置一个:/_next/static/....
这是我当前的文件系统:
如您所见,我的配置文件都位于/static/js/mail/config
而非/_next/static/js/mail/config
上。两者都不起作用,呼叫每次都以相同的错误进行响应,而独立于其路径。
这可能是我目前的now.json
,
{
"public": false,
"name": "LC",
"version": 2,
"routes": [{
"src": "/resume",
"dest": "https://lucacattide.dev/static/html/resume.html"
}, {
"src": "/robots.txt",
"dest": "https://lucacattide.dev/static/robots.txt"
}, {
"src": "/sitemap.xml",
"dest": "https://lucacattide.dev/static/sitemap.xml"
}, {
"src": "^/service-worker.js$",
"dest": "/_next/static/service-worker.js",
"headers": {
"cache-control": "public, max-age=43200, immutable",
"Service-Worker-Allowed": "/"
}
}],
"env": {
"RECAPTCHA_SECRET_KEY": "@recaptcha",
"SMTP_SERVICE_HOST": "@smtp_host",
"SMTP_SERVICE_PORT": "@smtp_port",
"SMTP_SERVICE_SECURE": "@smtp_secure",
"SMTP_USER_NAME": "@smtp_name",
"SMTP_USER_PASSWORD": "@smtp_password",
"SMTP_LOG_NAME": "@smtp_log"
},
"github": {
"enabled": true,
"autoAlias": false
}
}
任何人都曾经经历过这个问题,或者可以以某种方式帮助我吗?
预先感谢
答案 0 :(得分:0)
正如我在GitHub上所述,最终我发现__dirname
配置错误的原因,与 Webpack 配置有关。如StackOverflow建议的那样,通过在 Webpack 上将其停用,如下所示:
{
node: {
__dirname: false
}
}
客户端仅使用节点配置中的__dirname
。
但是,不幸的是,这不能解决我的问题,因为 NextJS 使用多个 Webpack 配置-服务器端和客户端都使用-因此就我而言,如果我尝试修改客户端,则返回的路径指向 NextJS /pages/api
文件夹。
由于我当前的托管服务Zeit.co的无服务器环境使我无法像我那样建立适当的express
自定义服务器,因此我最终选择了第三个-派对服务-EmailJS。
答案 1 :(得分:0)