Espresso Lungo
offers specialized helpers for JavaScript, CSS and image tags.
js_tag :application #=> <script src="/assets/application.js" ... css_tag :application #=> <link href="/assets/application.css" ... png_tag 'icons/edit' #=> <img src="/assets/icons/edit.png">
Other helpers:
Specialized helpers will use assets URL as prefix:
# --- app.rb --- class App < E # ... def index render end end app = E.new do assets_url '/public' end # --- view/app/index.erb --- js_tag :ui #=> <script src="/public/ui.js" ... png_tag 'images/header' #=> <img src="/public/images/header.png"
If you need to load some asset directly, without assets URL prefix, use :src
option for js/images and :href
for css:
js_tag src: "/jquery" #=> <script src="/jquery.js" ... css_tag href: "http://my.cdn/theme" #=> <link href="http://my.cdn/theme.css" ... png_tag src: 'icons/edit' #=> <img src="icons/edit.png">
[ contents ↑ ]
assets_mapper
allow to avoid repetitive path typing when loading assets.
Example: - long way:
js_tag 'vendor/jquery' js_tag 'vendor/bootstrap/js/bootstrap' css_tag 'vendor/bootstrap/css/bootstrap' js_tag 'vendor/select2/select2.min' css_tag 'vendor/select2/select2'
Example: - using assets_mapper
assets_mapper :vendor do js_tag 'jquery' cd 'bootstrap' js_tag 'js/bootstrap' css_tag 'css/bootstrap' cd '../select2' js_tag 'select2.min' css_tag 'select2'
[ contents ↑ ]
To enable and use Sprockets, simply call assets_url
at app level:
app = E.new app.assets_url '/assets' app.assets.append_path 'assets' app.run
Note: by default no paths will be added to Sprockets environment, so it is up to you to do this by using assets.append_path
or assets.prepend_path
.
Note: Sprockets environment will use app root as base path, so folders containing assets should reside in your app root.
app = E.new do assets_url '/assets' assets.append_path 'assets' assets.append_path 'public' end app.run
assets
method can be used to fully setup Sprockets environment:
app = E.new do assets_url '/assets' assets.compile = true assets.compress = false assets.js_compressor = :uglifier # etc. end app.run
To access assets inside controllers/templates, use assets
method as well:
class App < E # ... def some_action assets['application.js'] #=> #<Sprockets::BundledAsset ...> end end
[ contents ↑ ]