我怎么能指定一个替代目录我HandlebarsJS与灰烬护栏宝石模板?(How can I spec

2019-08-17 01:12发布

我有一个Rails应用程序,我使用灰烬的前端。 我想余烬相关的文件向下移动在目录结构中的一个级别,但是当我做,模板不再呈现。

在平原,香草,工作的应用程序的版本,我的目录结构是:

./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();

和:烬-app.js

//= require ./store
//= require_tree ./models
//= require_tree ./controllers
//= require_tree ./views
//= require_tree ./helpers
//= require_tree ./templates
//= require ./router
//= require_tree ./routes

一切工作正常。 不过,我想移动余烬,应用程序文件和所有烬javascript代码向下一级,当我这样做,模板不渲染。 (该应用程序的一部分使用了灰烬,而不是整个应用程序,我试图通过资产管道设立两个独立的路径。)

所需的结构是:

./app/
  assets/
    javascripts
      application.js
      embro/
        ember-app.js
        routes.js
        store.js
        models/
        controllers/
        routes/
        templates/
        views/

用:的application.js(修订:“需要余烬应用内”变成了“要求embro /余烬应用内”)

//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require embro/ember-app
App = Ember.Application.create();

(余烬-app.js是未经修正)。

正如我所说,搬家后,没有模板的内容出现在屏幕上。 没有错误或屏幕在控制台中,只是一个空烬的应用程序。

当我检查控制台Ember.TEMPLATES,所有预期的模板被列出。 此外,如果我把X车把模板所需的内容在适当的轨道查看,内容呈现成功,只是因为它与原来的目录结构一样。

例如,在应用程序/视图/首页/ 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>

...我们是好着呢。

但是如果我离开铁轨查看空的,因为我原来的结构一样,这是一个没有去。

想知道如果可能的余烬护栏宝石需要车把模板存在于应用程序/资产/ Java脚本/模板,如果有覆盖此方式。 说明文档中提到加入templates_root选项,应用程序配置块,我想知道,如果这是关键。 我逛了一下又打,没有运气。

有任何想法吗?


更新:

恐怕我没有与templates_root选项的运气。 作为一个实验,我试图建立一个新的,简单的Rails应用程序,并使用余烬护栏引导发生器得到它运行起来。 一切正常,但如果我再试图简单地改变模板文件夹的名称 (即应用程序/资产/ Java脚本/模板- >应用程序/资产/ Java脚本/寺院),以适当修改链轮包括和配置文件,我m到处相同的结果。

任何机会templates_root选项莫名其妙坏了?

我使用Ruby 1.9.3,Rails的3.2.11,烬护栏0.10.0

任何指针我应该在余烬/余烬护栏/车把源代码在哪里? 已经开始闲逛。

谢谢!

Answer 1:

你说的没错,你需要设置templates_root 。 尝试添加

config.handlebars.templates_root = 'embro/templates'

在配置块application.rb ,或

RailsApp::Application.config.handlebars.templates_root = 'embro/templates/'

到一个新的初始化,其中RailsApp是无论你的应用程序被命名。

编辑:

我能够重现您所描述的行为templates_root 。 对我来说,修复了删除/tmp我的应用程序,然后重新启动轨道的文件夹中。 此后,模板被正确命名。

编辑:

更准确地说,你需要明确在链轮缓存/tmp/cache/assets转换后templates_root

编辑:

正如在下面的评论中提到,一个简单的rake tmp:cache:clear应采取照顾的问题。



文章来源: How can I specify an alternative directory for my HandlebarsJS templates with the ember-rails gem?