我有一个这种格式的HTML文件:
html
more html
<%= valid erb %>
<!--
<%= incomplete_erb_with_bugs %>
-->
但是我仍然得到一个异常页面,因为有错误的ERB。但是不应该评论该部分导致该部分不被浏览器读取?还有另一种HTML方法可以实际阻止浏览器读取代码吗?
答案 0 :(得分:3)
因为没有评论。
但不应该评论该部分导致该部分不存在 通过浏览器阅读?
浏览器不执行Ruby或ERB - 服务器在将生成的HTML文档发送到浏览器之前执行。
ERB是嵌入在包含文字文本的文件中的ruby代码。除了&#34; erb标签&#34;中的代码之外,解释器不关心任何事情。
This is just literal text
<%# this is a ruby line comment - the code below is executed: %>
<% bar do %>
<%= foo %>
<% end %>
其余的只是放在缓冲区中。这就像PHP或任何其他嵌入式语言一样。
因此,HTML注释(或CSS或JS)不会以任何方式影响ERB解释器。解释器并不真正了解或关心其创建HTML。
是否有其他HTML方法可以实际阻止浏览器读取代码?
浏览器不执行Ruby代码。它只是根据您在响应中发送的任何内容构建文档。
因此使用ruby注释<%#= incomplete_erb_with_bugs %>
会阻止代码被执行 - 而且它永远不会被发送到浏览器。
答案 1 :(得分:2)
你正在评论html,但其中的ruby代码仍然会被评估。你需要注释掉代码,这样就完成了:
<%#= incomplete_erb_with_bugs %>
答案 2 :(得分:1)
你需要评论实际的行,而不是它周围的html
html
more html
<%= valid erb %>
<%= incomplete_erb_with_bugs %>
你也可以使用if语句
<% if false %>
<%#= incomplete_erb_with_bugs %>
<% end %>