Ember.js + Sinatra + Sprockets,试图为把手模板使用单独的文件

时间:2014-02-14 17:19:13

标签: ember.js sinatra sprockets handlebars.js

我目前正在编写一个带有小型Sinatra后端的Ember应用程序。我之前的Ember项目使用了一个带有ember-rails gem的Rails后端。我使用的是类似于ember-rails生成的目录结构。应用程序结构如下所示。

  /app
    /assets
      /stylesheets
      /javascripts
        /vendor
        /models
        /controllers
        /routes
        /views
        /templates
            --various templates with .hbs extension--
        applcation.js
        router.js
        store.js
    /models
    /views
      layout.erb
  app.rb
  config.ru
  Gemfile

我在使用链轮设置应用程序时没有遇到任何问题。 ember应用程序已加载并呈现在下面的布局模板中。

<!DOCTYPE html>
<html>
  <head>
    <title>My App</title>
  </head>
  <body>

    <script type="text/x-handlebars" data-template-name="application">
      <h1>My App</h1>
      {{ outlet }}
    </script>

    <script src="assets/javascripts/application.js"></script>
  </body>
</html>

问题是没有检测到我的.hbs模板文件并将其渲染到插座中。如果我将模板移动到布局中的脚本标记中,则它们会正确呈现。 我尝试过使用handlebars_assetssinatra-handlebarssinatra-ember,但无济于事。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我在Sinatra包装的ember.js应用中使用Sinatra::AssetPipelineHandlebarsAssets,它可以正常使用此配置:

configure do
  register Sinatra::AssetPipeline
  set :assets_precompile, %w(application.js application.css libs.js templates.js)
  sprockets.append_path HandlebarsAssets.path
  HandlebarsAssets::Config.ember = true
end

您可以在https://github.com/mynewsdesk/postman

看到它的实际效果