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

Pug文件渲染脚本报错:如何正确输出!{scripts}变量?

解决Pug模板中!{scripts}插值报错的问题

这个报错是因为Pug在解析!{scripts}时出现了语法识别异常,结合你的代码来看,可以从两个方面调整来解决:

1. 更换Pug的不转义插值写法

Pug里有两种实现不转义变量输出的方式,你当前用的!{variable}更适合嵌入在文本段落中,而当你把它作为单独一行使用时,改用!= variable的写法会更符合Pug的语法规范,也能避免解析错误。

修改你的index.pug中对应行的代码:

head
  meta(charset="utf-8")
  title #{title}
  script(src="/jquery.js")
  link(rel="stylesheet", type="text/css", href="/styles.css")
  != scripts  <!-- 把!{scripts}换成这行 -->
  style.
    body {
      margin: 0;
    }
    /* safari 9 modals fix */
    .no-scroll {
      overflow: hidden;
      height: 100%;
    }

2. 修正scripts变量的内容(可选但重要)

看你当前的Node.js代码,scripts变量里用了HTML转义字符(&lt;、&gt;),如果你的目标是在页面中输出可执行的<script>标签,那这些转义字符是多余的——因为!{...}或!=本身就是不转义输出,转义后的字符会被直接渲染成文本(比如页面上会显示&lt;script...&gt;而不是真正的脚本标签)。

把Node.js里的scripts变量改成原始的HTML字符串:

var html = pug.renderFile('./index.pug', {
  scripts: '<script type="text/javascript">console.log("Hello World!");</script>',
  title: 'test',
});

做完这两个调整后,Pug就能正确解析并输出你想要的脚本内容,不会再出现语法报错了。

内容的提问来源于stack exchange,提问作者Miguel Borges

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:59:15