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

Node.js中EJS语法报错:无法找到<%-匹配闭合标签求助

解决EJS模板"Could not find matching close tag for "<%-""错误

这个错误的根源很明确:你在vendor-request.ejs里添加的代码块中,EJS的输出标签<%-没有正确闭合,或者标签写法、嵌套存在问题,导致解析器找不到对应的结束标签%>。

具体排查和修复步骤

  • 检查标签完整性
    把新增的代码逐行核对,每个<%-必须对应一个%>,不能遗漏。比如避免出现这种写法:

    <%- include('partials/sidebar')  <!-- 此处缺少闭合标签 %> -->
    

    正确写法:

    <%- include('partials/sidebar') %>
    
  • 禁止标签嵌套
    EJS不允许在<%-内部嵌套其他EJS标签,比如<%- someFunc(<%= var %>) %>这种写法会直接触发解析错误。要直接传递变量,无需额外的<%=标签:
    错误示例:

    <%- renderForm({ name: <%= vendorName %> }) %>
    

    正确写法:

    <%- renderForm({ name: vendorName }) %>
    
  • 排查语法细节错误
    遗漏引号、括号不配对等细节,也会让解析器误判标签闭合位置。比如:
    错误示例:

    <%- include('partials/request-form', { data: <%= reqData }) %>
    

    正确写法(直接传递变量,无需<%=):

    <%- include('partials/request-form', { data: reqData }) %>
    
  • 对比正常页面找差异
    既然dashboard页面能正常渲染,把它的EJS标签写法和vendor-request的新增代码做对比,排查是否存在<%/<%=/<%-标签混用导致的规则冲突。

如果还是无法定位问题,可以把新增代码逐行注释后再逐行恢复,精准定位到触发错误的具体代码行,更容易揪出语法bug。

内容的提问来源于stack exchange,提问作者RIZWAN ALI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:28:14