0

Sailsを使用しているときに、次のコード行のたびに、このエラーUncaught ReferenceError: JST is not defined on the chrome console が表示されます:

JST['SailsApp/assets/templates/addUser.ejs']( obj )

addUser.ejsファイルの内容は次のとおりです。

<tr data-id="<%= user.id %>" data-model="user">
  <% if (user.online) { %>
  <td><span class="fa fa-circle fa-lg fa-circle-green"></span></td>
  <% } else { %>
  <td><span class="fa fa-circle fa-lg fa-circle-red"></span></td>
  <% } %>

  <td><%= user.id %></td>
  <td><%= user.name %></td>
  <td><%= user.title %></td>
  <td><%= user.email %></td>

  <% if (user.admin) { %>
  <td> <span class="glyphicon glyphicon-king" > </span></td>
  <% } else { %>
  <td> <span class="glyphicon glyphicon-user" > </span></td>
  <% } %>

  <td><a href="/user/show/<%= user.id %>" class="btn btn-sm btn-primary">Show</a> </td>
  <td><a href="/user/edit/<%= user.id %>" class="btn btn-sm btn-warning">Edit</a> </td>
  <td>
    <form action="/user/destroy/<%= user.id %>" method="POST">
      <input type="hidden" name="_method" value="delete"/>
      <input type="submit" class="btn btn-sm btn-danger" value="Delete"/>
      <input type="hidden" name="_csrf" value="<%= _csrf%>" />
    </form>
  </td>
</tr>

コンパイルされた .jst ファイルが.tmp/public フォルダーに表示されず、手動で実行するとsudo grunt jst作成されますが、Chrome コンソールで引き続き同じエラーが発生します。

どんな助けでも大歓迎です。

前もって感謝します!

4

1 に答える 1

0

私は最近同じ問題を抱えていました。「tasks/register/compileAssets.js」の下で、下に移動してみてjst:devくださいcopy:dev

module.exports = function (grunt) {
  grunt.registerTask('compileAssets', [
    'clean:dev',
    'less:dev',
    'copy:dev',
    'jst:dev',
    'coffee:dev'
  ]);
};

jst:dev タスクは .tmp/ ディレクトリでテンプレート ファイルを探しているようですが、コピー タスクが実行されるまで assets/ から移動されません。実行gruntして次のようなエラーが発生すると、これが表示されます。

Running "jst:dev" (jst) task
>> Destination not written because compiled files were empty.
于 2016-01-02T15:08:55.723 に答える