如何防止 Express 将模板脚本标签解释为实际的 EJS

How to keep Express from interpreting a template script tag as actual EJS

我在脚本标签中有一个简单的 EJS 模板,用于我的 HTML 中的 Backbone.js,如下所示:

<script type="text/template" id="template-wallets">
    <% if(i === 0) {%>
    <div class='wallet-box selected'>
    <% } else {%>
    <div class='wallet-box'>
    <% }%>
    <img src='api/identicon/<%= wallet.get('address') %>'>
    <div class='wallet-label'><%= wallet.get('address').substring(0, 8) %></div>
    </div>
</script>

但是,它所在的页面本身就是一个 EJS 页面,由 Express 提供服务。当页面被请求时,Express 将 script 标签的内容解释为 EJS 并尝试呈现它,由于显而易见的原因,这是有问题的。有没有什么办法可以转义脚本标记中的 EJS,使其按原样结束在页面上,准备好在客户端被 JavaScript 读取?

最简单的方法是更改​​ejs 的打开和关闭标签。例如:

res.render('backbone-template', { open: '<<', close: '>>' });