使用 Sails 时,每当这行代码时,Chrome控制台上出现此错误未捕获的ReferenceError:JST未定义:
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 folder 中,如果我手动运行sudo grunt jst
,则会创建它,但Chrome控制台会继续提供相同的内容错误。
非常感谢任何帮助。
提前致谢!
答案 0 :(得分:0)
我最近遇到了同样的问题。在&task; / register / compileAssets.js&#39;下,尝试将jst:dev
移到copy:dev
下方。
module.exports = function (grunt) {
grunt.registerTask('compileAssets', [
'clean:dev',
'less:dev',
'copy:dev',
'jst:dev',
'coffee:dev'
]);
};
似乎jst:dev任务正在查找.tmp / dir中的模板文件,但它们不会从assets /移动直到执行复制任务。如果您运行grunt
并收到如下错误,则会看到此消息:
Running "jst:dev" (jst) task
>> Destination not written because compiled files were empty.