テンプレート内のejsタグ自体をエスケープできますか?私はlayout.ejsejsテンプレート文字列の中でejsタグをエスケープする方法は?
<!--STYLES-->
<% if (typeof head_css != 'undefined') { %>
<%= head_css %>
<% } else { %>
<% if (typeof head_css_before != 'undefined') { %>
<%= head_css_before %>
<% } %>
<link rel="stylesheet" href="/styles/importer.css">
<% if (typeof head_css_after != 'undefined') { %>
<%= head_css_after %>
<% } %>
<% } %>
<!--STYLES END-->
が、デフォルトでは、次のコードを入れたい帆で
は、<!--STYLES-->
と<!--STYLES END-->
内のすべてのものは、このテンプレートに置き換えられます:
<link rel="stylesheet" href="%s">
sails-linker.js
のように
。
ので、代わりの、私は希望のテンプレート<link rel="stylesheet" href="%s">
描画されたときの結果になるよりも、何かいくつかのより複雑なものを入れる:
<!--STYLES-->
<% if (typeof head_css != 'undefined') { %>
<%= head_css %>
<% } else { %>
<% if (typeof head_css_before != 'undefined') { %>
<%= head_css_before %>
<% } %>
<link rel="stylesheet" href="/styles/importer.css">
<% if (typeof head_css_after != 'undefined') { %>
<%= head_css_after %>
<% } %>
<% } %>
<!--STYLES END-->
しかし、私は
<%= special_code_here %><link rel="stylesheet" href="%s">
ような何かをしようとするときに問題がありますこれは自動的にレンダリングされます。私は<%
をejsテンプレートの中でエスケープする必要があります。
どうすればこのことができますか?
「<' and '>」のHTMLエンティティを試しましたか?「<」と「>」ですか? –
@ScottMarcusはい、試しました。これの問題はlayout.ejsファイルのhtmlエンティティとしてレンダリングされました。そこにはエスケープされていない '<%'が必要です。だから、ブラウザには、私が持っているがプレーンテキストのようなコードが表示されます。 – GarouDan