Reputation: 4033
I added a simple Javascript file to my rails project beer_background.js
and put the file in app/assets/javascripts
I want to load the beer_background.js
when the application.html.erb
is rendered, so I put the following line in the application.html.erb
<%= javascript_include_tag('beer_background.js') %>
However this is causing the rails app to produce error that looks like the following.
Update
application.js
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require turbolinks
//= require_tree .
//= require d3
Upvotes: 2
Views: 157
Reputation: 7257
You should include your javascript file from within the application.js file:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require turbolinks
//= require d3
//= require beer_background
or use //= require_tree .
which will include all assets under the current directory
Upvotes: 1
Reputation: 2987
You shouldn't have to use javascript_include_tag
. Having the files in the location you do and //= require_tree .
in your application.js
should be enough.
http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives
The require_tree directive tells Sprockets to recursively include all JavaScript files in the specified directory into the output. These paths must be specified relative to the manifest file. You can also use the require_directory directive which includes all JavaScript files only in the directory specified, without recursion.
Upvotes: 1