EmberCLI Rails - Assets
The ember-cli-rails-assets
gem extends ember-cli-rails
to
enable rendering EmberCLI-generated JavaScript and CSS stylesheets into your
Rails application's layout HTML.
This project and the behavior it supports is deprecated.
Rendering EmberCLI applications with render_ember_app
is the recommended,
actively supported method of serving EmberCLI applications.
However, for the sake of backwards compatibility, ember-cli-rails-assets
supports injecting the EmberCLI-generated assets into an existing Rails layout.
Install
Add the following to your Gemfile
:
gem "ember-cli-rails-assets"
Then run bundle install
:
$ bundle install
Setup
To configure your project to use ember-cli-rails
, follow the instructions
listed in the ember-cli-rails
README.
To configure your project to user ember-cli-rails-assets
, ensure each Ember
application's ember-cli-build.js
includes the following values:
// frontend/ember-cli-build.js
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
// http://ember-cli.com/user-guide/#application-configuration
storeConfigInMeta: false,
fingerprint: {
// https://github.com/rickharrison/broccoli-asset-rev#options
generateAssetMap: true,
},
});
};
Mount
Mount the Ember application (in this example, the frontend
application) to the
desired path:
# config/routes.rb
Rails.application.routes.draw do
mount_ember_app :frontend, to: "/", controller: "ember#index"
end
Then, in the corresponding view, use the asset helpers:
<!-- app/views/ember/index.html.erb -->
<%= include_ember_script_tags :frontend %>
<%= include_ember_stylesheet_tags :frontend %>
Caveats
Mounting
If you're using the include_ember
style helpers with a single-page Ember
application that defers routing to the Rails application, insert a call to
mount_ember_assets
at the bottom of your routes file to serve the
EmberCLI-generated assets:
# config/routes.rb
Rails.application.routes.draw do
mount_ember_assets :frontend, to: "/"
end
Rendering
When injecting the EmberCLI-generated assets with the include_ember_script_tags
and include_ember_stylesheet_tags
helpers to a path other than "/"
, a
<base>
tag must also be injected with a corresponding href
value:
<base href="/">
<%= include_ember_script_tags :frontend %>
<%= include_ember_stylesheet_tags :frontend %>
<base href="/admin_panel/">
<%= include_ember_script_tags :admin_panel %>
<%= include_ember_stylesheet_tags :admin_panel %>
Rendering without <base>
element
To render the asset elements without using a <base>
element, pass the URL or
path to prepend:
<-- assuming Ember's assets are mounted to `"/"` -->
<%= include_ember_script_tags :frontend, prepend: "/" %>
<%= include_ember_stylesheet_tags :frontend, prepend: "/" %>
<%= include_ember_script_tags :admin_panel, prepend: "/" %>
<%= include_ember_stylesheet_tags :admin_panel, prepend: "/" %>
EmberCLI support
This project supports:
- EmberCLI versions
>= 1.13.13
Ruby and Rails support
This project supports:
- Ruby versions
>= 2.1.0
- Rails versions
>=4.1.x
.
Contributing
See the CONTRIBUTING document. Thank you, contributors!
License
Open source templates are Copyright (c) 2015 Sean Doyle. It contains free software that may be redistributed under the terms specified in the LICENSE file.
About
ember-cli-rails was originally created by Pavel Pravosud and Jonathan Jackson.
ember-cli-rails-assets was extracted from ember-cli-rails is maintained by Sean Doyle and Ryunosuke Sato.