我有一个 Rails 应用程序,我在前端使用 Ember。我想将与 ember 相关的文件在目录结构中下移一级,但是当我这样做时,模板不再呈现。
在应用程序的普通工作版本中,我的目录结构是:
./app/
assets/
javascripts
application.js
ember-app.js
routes.js
store.js
models/
controllers/
routes/
templates/
views/
与:application.js
//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require ember-app
App = Ember.Application.create();
和: ember-app.js
//= require ./store
//= require_tree ./models
//= require_tree ./controllers
//= require_tree ./views
//= require_tree ./helpers
//= require_tree ./templates
//= require ./router
//= require_tree ./routes
一切正常。但是,我想将 ember-app 文件和所有 ember javascript 代码下移一级,当我这样做时,模板不会呈现。(部分应用程序使用 Ember,但不是整个应用程序,我正在尝试通过资产管道设置两条单独的路径。)
所需的结构是:
./app/
assets/
javascripts
application.js
embro/
ember-app.js
routes.js
store.js
models/
controllers/
routes/
templates/
views/
with:application.js(修订:'require ember-app'变成'require embro/ember-app')
//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require embro/ember-app
App = Ember.Application.create();
(ember-app.js 未修订。)
正如我所说,移动后,屏幕上不会出现任何模板内容。屏幕上或控制台中没有错误,只是一个空的 ember 应用程序。
当我在控制台中检查 Ember.TEMPLATES 时,会列出所有预期的模板。此外,如果我将所需的内容放在适当的 rails 视图中的 x-handlebars 模板中,则内容会成功呈现,就像它使用原始目录结构一样。
例如,在apps/views/welcome/index.html....
<script type="text/x-handlebars" data-template-name="application">
<h1>hello</h1>
{{ outlet }}
</script>
<script type="text/x-handlebars" data-template-name="index">
<h1>this is the index</h1>
</script>
......我们很高兴再去一次。
但是,如果我将 rails 视图留空,就像我对原始结构所做的那样,那就不行了。
想知道 ember-rails gem 是否需要将车把模板存在于 app/assets/javascripts/templates 中,以及是否有办法覆盖它。文档提到向应用程序配置块添加一个 templates_root 选项,我想知道这是否是关键。我玩了一会儿,还没有运气。
有任何想法吗?
更新:
恐怕我对 templates_root 选项没有任何运气。作为一个实验,我尝试构建一个新的、简单的 Rails 应用程序,并使用 ember-rails 引导生成器启动并运行它。一切都很好,但是如果我尝试简单地更改模板文件夹的名称(即 app/assets/javascripts/templates -> app/assets/javascripts/temple),并对 sprockets 包含和配置文件进行适当更改,我' m 得到相同的结果。
templates_root 选项是否有可能以某种方式损坏?
我正在使用 Ruby 1.9.3、Rails 3.2.11、ember-rails 0.10.0
任何指向我应该在 ember/ember-rails/handlebars 源代码中查看的位置的指针?已经开始四处闲逛了。
谢谢!