大多数关于资产管道和javascript模板的Rails3.1教程让我相信资产管道会选择任何*.jst文件,并将它们放入*.js文件可用的JST变量中。然而,当我尝试加载*.jst模板时,我遇到了以下错误:
Uncaught ReferenceError: JST is not defined
有什么建议吗?
发布于 2011-12-11 03:56:53
如果您正确地在app/assets/application.js文件中包含javascript模板项,以便可以通过资源管道包含它们,则似乎可以设置JST变量:
//= require templates/your_template.jst
然后在相应的rails视图中包含javascript模板(使用haml):
- content_for :javascripts do
= javascript_include_tag "templates/your_template"发布于 2012-02-02 22:47:25
如果您使用像这样的require行
//= require_tree ../模板
确保该行位于之上,即包含给您错误的任何文件的行。
发布于 2013-09-21 03:24:58
所有其他的答案都在这一点上,但为了澄清...
除非清单中需要一个或多个.jst文件,否则链轮不会定义JST。
因此,即使清单中有//= require_tree ../templates,在模板目录中创建至少一个.jst文件之前,JST仍然是未定义的。
还要确保包含EJS gem。如果您已经包含了backbone-on-rails,那么您已经拥有它了。
https://stackoverflow.com/questions/8396051
复制相似问题