Can't seem to get javascripts to load in rails 3.1.3

Hello all,

I am attempting to add some jquery to an application that I am developing but I am having trouble getting my newly created .js file to load. I have tried manually requiring my file in the application.js but it still does not seem to load. Is there anything else that I can check to see why my .js file is not loading?

So far after adding my .js file, I have checked the html source and also looked in the firebug console to see if it loaded and it is not there. As for a second measure to see if the file is loaded but I just can’t seem to find it I added an alert to the the .js file I wanted loaded and it never executed.

I welcome any ideas on how I can resolve this issue. At this moment I am at a stand still till I can understand whats going on :-/

Some generic questions that can focus the problem.

In which directory is your new .js file exactly?

How did you try to “… I have tried manually requiring my file in the application.js …”

exact code snippet.

Are you aware that these lines

…/app/assets/javascripts$ cat application.js … //= require jquery //= require jquery_ujs //= require jquery-ui //= require_tree .

are not comments, but determine which code is included for building the assets ?

I presume you are now talking about dev environment ?

HTH,

Peter

I am almost certain you are using Rails 3.1 or higher. It has some new assumptions that you may not be aware of. I highly suggest you go to RailsCasts and watch/read episode #265. About 4 minutes into the video, you will have your answer.

SC

I found the RailsGuides guide about the assets pipeline good enough to understand (and use) it.

Here's the link:

Good luck!

> Hello all,

> I am attempting to add some jquery to an application that I am developing > but I am having trouble getting my newly created .js file to load. I have > tried manually requiring my file in the application.js but it still does > not seem to load. Is there anything else that I can check to see why my .js > file is not loading?

> So far after adding my .js file, I have checked the html source and also > looked in the firebug console to see if it loaded and it is not there. As > for a second measure to see if the file is loaded but I just can't seem to > find it I added an alert to the the .js file I wanted loaded and it never > executed.

> I welcome any ideas on how I can resolve this issue. At this moment I am > at a stand still till I can understand whats going on :-/

Some generic questions that can focus the problem.

In which directory is your new .js file exactly?

The new .js file is in app/assets/javascripts

How did you try to "... I have tried manually requiring my file in the application.js ..." exact code snippet.

Are you aware that these lines

../app/assets/javascripts$ cat application.js ... //= require jquery //= require jquery_ujs //= require jquery-ui //= require_tree .

are not comments, but determine which code is included for building the assets ?

Yes I am aware of those lines and I did not remove any of those lines or modify them. When I placed my .js file in the correct location I was under the impression that //= require_tree . would pick up that file so that I would not have to add it manually.

I presume you are now talking about dev environment ?

Yes this is development environment

I am almost certain you are using Rails 3.1 or higher. It has some new assumptions that you may not be aware of. I highly suggest you go to RailsCasts and watch/read episode #265. About 4 minutes into the video, you will have your answer.

Thanks for the response soldier. I just finished looking at railscast 265 as you suggested but unfortunately it did not tell me anything new. My understanding of assets came from the rails cast #279 (I believe). I think they are saying the same thing.

Yes it should. I just added a test.js for fun I see this in the source of the home page:

... ```

Is application.js loaded correctly ? Like this:

HTH,

Peter

> > > Hello all,

> > > I am attempting to add some jquery to an application that I am > developing > > > but I am having trouble getting my newly created .js file to load. I > have > > > tried manually requiring my file in the application.js but it still > does > > > not seem to load. Is there anything else that I can check to see why > my .js > > > file is not loading?

> > > So far after adding my .js file, I have checked the html source and > also > > > looked in the firebug console to see if it loaded and it is not there. > As > > > for a second measure to see if the file is loaded but I just can't > seem to > > > find it I added an alert to the the .js file I wanted loaded and it > never > > > executed.

> > > I welcome any ideas on how I can resolve this issue. At this moment I > am > > > at a stand still till I can understand whats going on :-/

> > Some generic questions that can focus the problem.

> > In which directory is your new .js file exactly?

> The new .js file is in app/assets/javascripts

> > How did you try to "... I have tried manually requiring my file in the > > application.js ..." > > exact code snippet.

> > Are you aware that these lines

> > ../app/assets/javascripts$ cat application.js > > ... > > //= require jquery > > //= require jquery_ujs > > //= require jquery-ui > > //= require_tree .

> > are not comments, but determine which code is included for building the > > assets ?

> Yes I am aware of those lines and I did not remove any of those lines > or modify them. When I placed my .js file in the correct location I > was under the impression that //= require_tree . would pick up that > file so that I would not have to add it manually.

Yes it should. I just added a test.js for fun I see this in the source of the home page:

<head> ...

<script src="/assets/test.js?body=1 <view-source:http://localhost:3000/assets/test.js?body=1&gt;&quot; type="text/javascript"></script> ...

I never saw my individual .js files. The one I am creating is called confirmation.js which that was not loaded.

Is application.js loaded correctly ? Like this:

... <script src="/assets/application.js?body=1 <view-source:http://localhost:3000/assets/application.js?body=1&gt;&quot; type="text/javascript"></script>

I actually don't see my application.js file either. I am pretty sure before I upgraded to rails 3.1.3 from 3.1.0 I at least saw my application.js file. So now I am even more confused.

Vell--

With the asset pipeline, you don't include assets explicitly at /assets/application.js

Instead, you use the asset pipeline and let it handle this for you. Re-read the Asset pipeline Rails guide carefully, make sure your config.assets settings are correct (remember, "turned on by default" doesn't apply if you upgraded from a pre-3.1 rails app -- you have to change the config setting yourself).

The assets get compiled into a folder at public/assets/ but you can't include those explicitly because of the asset ID thumbprint hash that gets added.

-Jason

Do you have <%= javascript_include_tag "application" %> in your layout?