EJS未匹配闭合标签错误排查及嵌套代码修复求助
EJS代码错误修复方案
问题原因
你的代码错误出在嵌套EJS标签的写法上:在JavaScript字符串内部直接嵌套<%= %>标签是EJS不支持的写法,会导致解析器无法识别闭合标签,同时你还在字符串里多写了一个多余的\>,进一步干扰了标签解析。
修复后的代码
<% for (let i = 0; i < posts.length; i++) { let imageSrcs = []; for (let j = 0; j < posts[i].images.length; j++) { // 直接用JS字符串拼接,避免嵌套EJS标签 let imageSrc = `data:image/${posts[i].images[j].image.contentType};base64,${posts[i].images[j].image.data.toString('base64')}`; imageSrcs.push(imageSrc); } %> // 将数组转为JSON字符串,确保JS能正确识别 initializeSlider($(".slider-<%= i+1 %>"), <%= JSON.stringify(imageSrcs) %>); <% } %>
关键修复点
- 移除字符串内的嵌套EJS标签,改用ES6模板字符串直接在JS逻辑中生成图片地址
- 删除了干扰解析的多余
\>符号 - 使用
JSON.stringify()将imageSrcs数组转为合法的JS字符串,避免直接输出数组导致前端语法错误
内容的提问来源于stack exchange,提问作者duruburak
相关产品推荐
相关产品推荐

