2

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.

error

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
2
  • What does your application.js file look like? Commented Jul 15, 2014 at 7:50
  • just added the application.js Commented Jul 15, 2014 at 7:54

2 Answers 2

1

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.

Sign up to request clarification or add additional context in comments.

2 Comments

Joe that's what I thought too. Does it make a difference that I manually added the JS file to the javascripts directory? Or should I have done something like rails g my.js to add the file to the project?
Is your JS file not being loaded? You should be able to tell if it loaded by checking the development console and viewing sources.
1

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.