You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中Pug模板动态渲染href(token无效)问题求助

解决Pug模板中邮件链接动态token不生效的问题

嘿,我之前用Pug做邮件模板时也碰到过一模一样的属性变量插值问题,让我帮你搞定这个token无效的麻烦~

问题根源

你在文本里用#{name}能正常显示,是因为Pug的#{variable}语法专门用于标签内部的文本内容插值;但在HTML属性(比如href)里,这种写法不会被Pug正确解析——#{token}没有被替换成实际的token值,反而把#保留在了URL里。浏览器会把#后面的内容当成页面锚点,不会发送给服务器,所以服务器收到的请求里没有有效token,才会提示“invalid token at #”。

正确的解决方法

只需要修改Pug模板里的链接写法,以下几种方式任选其一都能解决:

1. 字符串拼接方式

直接在属性里用+拼接基础URL和token变量:

a.button(href='xyz.com/verify/' + token, target='_blank') Activate your account

2. ES6模板字符串方式

用反引号包裹模板字符串,通过${token}完成插值:

a.button(href=`xyz.com/verify/${token}`, target='_blank') Activate your account

3. 属性绑定方式

用=明确绑定属性值,更贴合Pug的语法习惯:

a.button(target='_blank', href= 'xyz.com/verify/' + token) Activate your account

额外验证小技巧

为了确认token确实被正确传递到了模板,你可以临时加一行调试代码:

| 调试Token值:#{token}

如果能正常显示token的内容,说明变量传递环节没问题,只需要修改链接写法就可以了。

内容的提问来源于stack exchange,提问作者Killer Beast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:03:18