我在前端有一个带有 Ember 的 Rails 应用程序。今天,我升级到 Rails 4,唯一无法解决的问题是我的 Handlebars 模板没有被编译或包含为资产(在开发模式下)。我没有收到任何错误消息。
我生成了一个全新的 Rails 4 测试应用程序并安装了 Ember,它可以很好地处理 Handlebars 文件。测试应用程序中的所有宝石都存在于我的应用程序中。我尝试运行rake rails:upgrade
,但没有效果。我尝试修改 ember-rails 源以输出日志消息,并且测试应用程序和我的应用程序的消息和执行路径相同。
我像往常一样需要模板:
require_tree ./templates
我尝试使用 ember-rails 0.11.1 和 Github master,但没有成功。
相关宝石版本:
* ember-data-source (0.0.5)
* ember-rails (0.11.1 4dc902b)
* ember-source (1.0.0.rc2.0)
* sprockets (2.9.0)
* sprockets-rails (2.0.0.rc3)
* barber (0.4.1)
- 模板都在 app/assets/javascripts/templates 中,并且都使用扩展名 .handlebars。虽然我也尝试过 .hbs 和 .js.hjs 。
从 Chrome 控制台:
Ember.TEMPLATES 对象 {}
我可以像这样从 Rails 命令行手动编译资产:
environment = Sprockets::Environment.new
environment.append_path 'app/assets/javascripts'
a = environment['templates/test.handlebars']
a.to_s => "..compiled template.."
并且引擎已注册:
environment.engines
=> {..".handlebars"=>Ember::Handlebars::Template..}
Rails.application.config.assets.paths 应该包含 app/assets/javascripts 文件夹。
对此的任何帮助将不胜感激,谢谢!