簡體   English   中英

rails 3.1中的EJS gem不會正確編譯JavaScript模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM