我目前正在编写一个带有小型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_assets,sinatra-handlebars和sinatra-ember,但无济于事。任何帮助将不胜感激。
答案 0 :(得分:2)
我在Sinatra包装的ember.js应用中使用Sinatra::AssetPipeline和HandlebarsAssets,它可以正常使用此配置:
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
看到它的实际效果