[英]EJS gem in rails 3.1 won't compile JavaScript templates properly
我試圖在rails 3.1中使用EJS gem進行模板化。 當我在application.js文件中需要我的模板時
//= 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);
我希望模板能夠編譯成一個字符串。 這是我過去與Jammit的經歷。 我需要手動完成嗎? 我錯過了什么嗎?
提前致謝,
一種
Sprockets沒有通過EJS處理您的模板,因為它沒有以'ejs'結尾。 您需要在模板文件中使用以“.jst.ejs”結尾的擴展名,以便按正確的順序處理它們。
嗯,
有趣的是,安裝rails-backbone gem,而不是手動在應用程序中放置主干,似乎解決了這個問題。 我還將模板移動到骨干目錄結構中。 也許ejs gem對主干寶石有一些依賴(不太可能)? 或者它與目錄嵌套級別或資產管道包含目錄的方式有關?
無論哪種方式,不知道為什么這是有效的,但它仍然工作。 如果有人能提供解釋,我會很感激。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.