2011-10-21 2 views
0

レール3.1のテンプレート作成にEJS gemを使用しようとしています。私はapplication.jsファイルに私のテンプレートを必要とレール3.1のEJS gemがJavaScriptテンプレートを正しくコンパイルしない

//= require_directory ./templates 

私はクライアント側で取得した出力は、匿名関数と名前空間、それにテンプレートをラップし、しかし...それはそれです。これは私が得られる生成された出力です。

(function() { 
    this.JST || (this.JST = {}); 
    this.JST["templates/index"] = <article class="item <%=type%>"> 
    <% if (type === "stat") { %> 
     <h2> 
     <span>70%</span> 
     of teens have one or more social network profiles 
     </h2> 
    <% } else { %> 
     <header> 
     <a href="/posts/<%=id%>"> 
      <h3><%=type%></h3> 
      <h2><span>- <%=type%></span></h2> 
     </a> 
     </header> 
     <% if (confidential) { %> 
     <span class="confidential">Confidential</span> 
     <% } %> 
     <% if (type === "video" || type === "music") { %> 
     <a href="/posts/<%=id%>" class="play">play</a> 
     <% } %> 
     <a href="/posts/<%=id%>"><img src="<%=image%>" alt="" /></a> 
    <% } %> 
    </article>; 
}).call(this); 

テンプレートを文字列にコンパイルすると思います。それは私が過去にジャミットと経験したことです。私はそれを手動で行う必要がありますか?何か不足していますか?事前に

おかげで、

答えて

0

うーん、

は興味深いことに、むしろ手動でアプリにバックボーンを置くよりも、レール・バックボーン宝石をインストールし、問題を解決するように見えました。また、テンプレートをバックボーンのディレクトリ構造に移動しました。たぶん、ejsの宝石は、バックボーンの宝石にいくつかの依存関係を持っています(私はそう思わないでしょう)?それとも、ディレクトリのネストレベルや、アセットパイプラインにディレクトリが含まれているかと関係がありますか?

どちらの方法でも、なぜこれが機能しているのか分かりませんが、それほど効果的ではありません。誰かが説明をすることができたら、私はそれを感謝します。

2

「ejs」で終了しなかったため、スプロケットはEJSでテンプレートを処理していませんでした。正しい順序で処理するには、テンプレートファイルで ".jst.ejs"で終わる拡張子を使用する必要があります。

関連する問題