2017-04-25 6 views
0

私は、この形式のHTMLファイルを持っている:コメントアウトされたERBはまだエラーを投げますか?

html 
more html 
<%= valid erb %> 

<!-- 
    <%= incomplete_erb_with_bugs %> 
--> 

をしかし、私はまだ理由バギーERBの、例外ページを取得します。しかし、その部分をコメントアウトして、その部分がブラウザによって読み取られないようにしてはいけませんか?実際にブラウザがコードを読み取ることを妨げる別のHTMLメソッドがありますか?

+0

[ブロックのコメントをhtml.erbのテンプレートでブロックする](http://stackoverflow.com/questions/3127644/block-comments-in-html-erb-templates-in-rails) – burnettk

答えて

3

コメントはありません。

しかし は、ブラウザによって読み取られるべきではなく、その部分の原因からそのセクションをコメントではないでしょうか?

ブラウザはRubyまたはERBを実行しません。サーバーは、生成されたHTMLドキュメントをブラウザに送信する前に実行します。

ERBは、リテラルテキストを含むファイルに埋め込まれたルビコードです。インタプリタは、 "erbタグ"のコード以外は気にしません。

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 %>を使用すると、コードが実行されないようになり、ブラウザに送信されることはありません。

+0

一行のコメント。複数行のコメントについては、http://stackoverflow.com/questions/3127644/block-comments-in-html-erb-templates-in-railsを参照してください。 – max

2

あなたはhtmlをコメントアウトしていますが、その内部のルビーコードはまだ評価されています。あなたはこのように行われているコードを、コメントアウトする必要があります:あなたは、実際の行ではなく、それは

html 
more html 
<%= valid erb %> 


    <%= incomplete_erb_with_bugs %> 

あなたにも使用することができ、周囲のHTMLをコメントする必要が

<%#= incomplete_erb_with_bugs %> 
1

をif文

<% if false %> 
     <%#= incomplete_erb_with_bugs %> 
<% end %> 
関連する問題