Railsアプリケーションがあり、フロントエンドでEmberを使用しています。残り火関連のファイルをディレクトリ構造の1つ下のレベルに移動したいのですが、移動すると、テンプレートがレンダリングされなくなります。
アプリケーションのプレーンでバニラな動作バージョンでは、私のディレクトリ構造は次のとおりです。
./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コードを1レベル下に移動したいのですが、移動すると、テンプレートがレンダリングされません。(アプリケーションの一部はEmberを使用しますが、アプリケーション全体は使用しません。アセットパイプラインを介して2つの別々のパスを設定しようとしています。)
必要な構造は次のとおりです。
./app/
assets/
javascripts
application.js
embro/
ember-app.js
routes.js
store.js
models/
controllers/
routes/
templates/
views/
with:application.js(改訂:'requireember-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-applicationだけです。
コンソールで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>
...そしてまた行ってもいいです。
しかし、元の構造で行ったように、レールビューを空のままにすると、失敗します。
おそらくember-railsgemで、ハンドルバーテンプレートがapp / Assets / javascripts / templateに存在する必要があるかどうか、そしてこれをオーバーライドする方法があるかどうか疑問に思います。ドキュメントには、templates_rootオプションをアプリケーション構成ブロックに追加することが記載されていますが、これが重要かどうか疑問に思っています。私は少し遊んだことがありますが、まだ運がありません。
何か案は?
アップデート:
私はtemplates_rootオプションで運がないのではないかと心配しています。実験として、新しいシンプルなRailsアプリを作成し、ember-railsブートストラップジェネレーターを使用して起動して実行してみました。すべて順調ですが、スプロケットのインクルードと構成ファイルを適切に変更して、テンプレートフォルダーの名前を変更しようとすると(つまり、app / Assets / javascripts / templates-> app / Assets / javascripts /temple)、私は' m同じ結果が得られます。
templates_rootオプションが何らかの理由で壊れている可能性はありますか?
Ruby 1.9.3、Rails 3.2.11、ember-rails0.10.0を使用しています
ember / ember-rails / handlebarsソースコードのどこを見るべきかへのポインタはありますか?突っつい始めました。
ありがとう!