2014-12-11 62 views
0

我刚刚设置了一个骨架Rails 4应用程序,并已添加了一些基本脚手架的backbone-on-rails gem。未捕获的ReferenceError:JST未在骨架中使用Jade模板定义

在试图让一切成立的过程中,我一直运行到以下错误:

Uncaught ReferenceError: JST is not defined 
(anonymous function) 

试图调用从骨干视图模板index.jst.jade时。

为了确保脚手架连接在一起,我添加了一条警报,但我无法通过此错误来正确呈现视图。

我已经包含了玉石宝石,确保模板路径在js视图中是正确的,并相应地更新了清单文件。

我必须在某处定义JST吗?我在这里做错了什么?

感谢

Gem版本:

  • 玉(0.1.1)
  • 骨干-上轨(1.1.1.0)
  • 下划线导轨(1.7.0)
  • Rails 4.1.6 Ruby 2.1.0

Router:

Task.Routers.Tasks = Backbone.Router.extend({ 
    routes: { 
    '': 'index', 
    }, 

    index: function() { 
    alert('index router hit'); 
    }, 
}); 

查看:

Task.Views.TasksIndex = Backbone.View.extend({ 
    template: JST['tasks/index'] 
}); 

的application.js:

//= require jquery 
//= require lodash 
//= require jquery_ujs 
//= require backbone 
//= require jade/runtime 

//= require task 
//= require_tree ../templates 
//= require_tree ./models 
//= require_tree ./collections 
//= require_tree ./views 
//= require_tree ./routers 
//= require_tree . 

应用程序结构树:

|____javascripts 
| |____application.js 
| |____collections 
| | |____tasks.js 
| |____models 
| | |____task.js 
| |____routers 
| | |____tasks_router.js 
| |____task.js 
| |____views 
| | |____tasks 
| | | |____tasks_index.js 
|____templates 
| |____tasks 
| | |____index.jst.jade 
+0

我也不会在使用.eco模板时出现此错误。是什么让玉在这里独一无二? – mrh 2014-12-11 04:16:27

+0

你见过这篇文章吗? 重复:http://stackoverflow.com/questions/8396051/jst-undefined-for-rails-3-1-application – 2014-12-11 04:32:45

+0

我做过了,我的application.js文件包含'// = require_tree ../在所有其他骨干目录之前的模板“ – mrh 2014-12-11 04:40:41

回答

0

嗯...你所需要的runtime.js文件在模板之前? http://www.rubydoc.info/gems/jade/0.1.1/frames

这是为了评论,但我没有足够的评论意见。哈哈。

+0

Sam,感谢您的支持,但仍然没有运气!我已经修改我的问题,包括我的'application.js'文件 – mrh 2014-12-12 01:19:17

+0

另外,我的web服务器yeilds会出现以下错误:'ActionController :: RoutingError(没有路由匹配[GET]“/javascripts/tasks/index.jade.js”) ',这很奇怪,因为它将文件解释为jade.js – mrh 2014-12-12 01:38:44

相关问题