Jquery not working in production?

Hello all,

I seem to be running into an issue where jquery seems to be working fine
in
my development environment but when I load it to my production
environment
it does not work. There are some menus that I am trying to hide when the
web page loads but when they page loads they are there in plain site.
When
I launch firebug and run the same code in console it works without any
issue so I have wonder if there is a different way I need to precompile
the
assets to get everything to load?

Here is what my environment is like:

Rails Version: 3.2.3
Ruby Version: 1.9.3 (RVM)

Gemfile

gem ‘jquery-rails’, ‘~> 2.0.1’

app/assets/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require_tree .

app/assets/javascripts/custom.js
$(function(){
$(’#roles_menu’).hide();
$(’#issues_menu’).hide();
$(’#features_menu’).hide();
$(’#roles_menu_link’).click(
function(){
if($(’#roles_menu’).is(’:hidden’)){
$(’#roles_menu’).slideDown(‘slow’);
// $(’#roles_menu_link’).html(“hide roles menu”);
} else{
$(’#roles_menu’).slideUp(‘slow’);
// $(’#roles_menu_link’).html(“show roles menu”);
}
});

$('#issues_menu_link').click(
    function(){
        if($('#issues_menu').is(':hidden')){
            $('#issues_menu').slideDown('slow');
            // $('#issues_menu_link').html("<a href='#'

id=‘issues_menu_link’>hide issues menu");
} else{
$(’#issues_menu’).slideUp(‘slow’);
// $(’#issues_menu_link’).html(“show issues menu”);
}
});

    $('#features_menu_link').click(
        function(){
            if($('#features_menu').is(':hidden')){
                $('#features_menu').slideDown('slow');
                // $('#features_menu_link').html("<a href='#'

id=‘features_menu_link’>hide features menu");
} else{
$(’#features_menu’).slideUp(‘slow’);
// $(’#features_menu_link’).html(“show features menu”);
}
});
});

On Tuesday, June 26, 2012 11:14:14 PM UTC-4, Vell wrote:

UPDATE: interestingly enough I ran rake assets:precompile and I didn’t
get any errors prior to submitting this topic. I decided to run rake
assets:precompile:all and I hit an error:

rake aborted!
couldn’t find file ‘jquery’

To make sure I ran rake assets:precompile again to see if I wouldn’t
get
any errors and I again hit another error but it is different from the
error
I got above:

rake aborted!
Invalid CSS after " background:url(": expected expression (e.g. fr,
2n+1), was “<%= asset_path …”

I though the jquery-rails gem was supposed to load jquery for me. Is it
that I don’t need to include jquery and jquery_ujs in my application.js
file?

Here is what my environment is like:

On Tuesday, June 26, 2012 11:22:56 PM UTC-4, Vell wrote:

when the web page loads but when they page loads they are there in plain

file?

UPDATE 2: Changing my css file to css.erb fixed my css error but I am now
back to my jquery error. I have confirmed that when I run rake assets:precompile I do not get an error about jquery but when I run
rake assets:precompile:all I get an error about jquery. What would make it
so
that one complains the other does not? and also do I need to include
jquery
and jquery_ujs if I am using the jquery-rails gem?

On Tuesday, June 26, 2012 9:02:21 PM UTC-7, Vell wrote:

assets:precompile:all and I hit an error:
2n+1), was “<%= asset_path …”
and jquery_ujs if I am using the jquery-rails gem?

Val,

Your Gemfile looks good to me and so does your application.js.

Are you using bundle exec rake to precompile? Can you post the error
message you get about jquery?


Ylan.

On Wednesday, June 27, 2012 8:16:47 AM UTC-7, Vell wrote:

Your Gemfile looks good to me and so does your application.js.
(in
/home/vmcilwain/apps/test_app/app/assets/javascripts/application.js:13)

Tasks: TOP => assets:precompile:primary
(See full trace by running task with --trace)

[snip]

Val,

The error you are getting means that, when running the rake task the
jquery
gem is not available. There are a few ways this can happen: Did you add
the
jquery gem only in the development group? In the asset group? Did you
remember to run bundle install after adding the gem? What bundler groups
are available in which environments (look into your application.rb
file).

If answering the above questions doesn’t lead you to find the problem,
post
back your complete Gemfile and we will go from there.


Ylan.

On Wednesday, June 27, 2012 2:36:33 AM UTC-4, Ylan wrote:

precompile the assets to get everything to load?
error I got above:
now back to my jquery error. I have confirmed that when I run `rake
Are you using bundle exec rake to precompile? Can you post the error
message you get about jquery?

Thanks for the response Ylan. I just now tried bundle exec rake assets:precompile:all and I am getting the same error about jquery.
The
error I am getting is:

rake aborted!
couldn’t find file ‘jquery’
(in
/home/vmcilwain/apps/test_app/app/assets/javascripts/application.js:13)

Tasks: TOP => assets:precompile:primary
(See full trace by running task with --trace)

Here is what the trace outputs:

** Invoke assets:precompile:all (first_time)
** Execute assets:precompile:all
** Invoke assets:precompile:primary (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:primary
rake aborted!
couldn’t find file ‘jquery’
(in
/home/vmcilwain/apps/test_app/app/assets/javascripts/application.js:13)
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/context.rb:100:in
resolve' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/context.rb:140:inrequire_asset’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/directive_processor.rb:215:in
process_require_directive' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/directive_processor.rb:165:inblock in process_directives’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/directive_processor.rb:163:in
each' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/directive_processor.rb:163:inprocess_directives’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/directive_processor.rb:97:in
evaluate' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/tilt-1.3.3/lib/tilt/template.rb:76:inrender’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/context.rb:177:in
block in evaluate' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/context.rb:174:ineach’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/context.rb:174:in
evaluate' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/processed_asset.rb:12:ininitialize’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:241:in
new' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:241:inblock in build_asset’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:262:in
circular_call_protection' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:240:inbuild_asset’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/index.rb:89:in
block in build_asset' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/caching.rb:19:incache_asset’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/index.rb:88:in
build_asset' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:163:infind_asset’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/index.rb:56:in
find_asset' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/bundled_asset.rb:16:ininitialize’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:244:in
new' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:244:inbuild_asset’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/index.rb:89:in
block in build_asset' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/caching.rb:19:incache_asset’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/index.rb:88:in
build_asset' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:163:infind_asset’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/index.rb:56:in
find_asset' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.3/lib/sprockets/static_compiler.rb:20:inblock in compile’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:212:in
block in each_logical_path' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:200:inblock (2 levels) in each_file’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:190:in
each' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:190:ineach_entry’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:198:in
block in each_file' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:197:ineach’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:197:in
each_file' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/sprockets-2.1.3/lib/sprockets/base.rb:210:ineach_logical_path’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.3/lib/sprockets/static_compiler.rb:18:in
compile' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.3/lib/sprockets/assets.rake:56:ininternal_precompile’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.3/lib/sprockets/assets.rake:70:in
block (3 levels) in <top (required)>' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:205:incall’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:205:in
block in execute' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:200:ineach’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:200:in
execute' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:158:inblock in invoke_with_call_chain’
/home/vmcilwain/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in
mon_synchronize' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:151:ininvoke_with_call_chain’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:144:in
invoke' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.3/lib/sprockets/assets.rake:60:inblock (3 levels) in <top (required)>’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:205:in
call' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:205:inblock in execute’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:200:in
each' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:200:inexecute’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:158:in
block in invoke_with_call_chain' /home/vmcilwain/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:inmon_synchronize’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:151:in
invoke_with_call_chain' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/task.rb:144:ininvoke’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:116:in
invoke_task' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:94:inblock (2 levels) in top_level’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:94:in
each' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:94:inblock in top_level’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:133:in
standard_exception_handling' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:88:intop_level’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:66:in
block in run' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:133:instandard_exception_handling’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/application.rb:63:in
run' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/bin/rake:33:in<top (required)>’
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/bin/rake:19:in load' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194@global/bin/rake:19:in
/home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in
eval' /home/vmcilwain/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in
Tasks: TOP => assets:precompile:primary

On Jun 27, 2012, at 9:42 AM, Vell wrote:

Here is what my gemfile looks like:

[snip]

I don’t see any obvious errors there, and I am assuming that you already
checked line 13 of application.js for correctness. At this point, I am
out of ideas on where the problem is. If I where you, I would start a
blank rails application in which you can precompile the assets. Then
starts looking for potential differences between the brand new app and
yours.

Sorry, I can’t be of more help.


Ylan

On Wednesday, June 27, 2012 12:16:03 PM UTC-4, Ylan wrote:

Val,

The error you are getting means that, when running the rake task the
jquery gem is not available. There are a few ways this can happen: Did you
add the jquery gem only in the development group? In the asset group?

jquery rails is in the assets group of my gemfile

Did you remember to run bundle install after adding the gem?

Yes I did run bundle install after adding the gym.

What bundler groups are available in which environments (look into your
application.rb file).

I am not sure I am looking in the right place in my application.rb file
but
here is what I saw at the top of the file:

if defined?(Bundler)

If you precompile assets before deploying to production, use this

line
Bundler.require(*Rails.groups(:assets => %w(development test)))

If you want your assets lazily compiled in production, use this line

Bundler.require(:default, :assets, Rails.env)

end

If answering the above questions doesn’t lead you to find the problem,
post back your complete Gemfile and we will go from there.

Here is what my gemfile looks like:

source ‘https://rubygems.org

gem ‘rails’, ‘3.2.3’

Bundle edge Rails instead:

gem ‘rails’, :git => ‘git://github.com/rails/rails.git’

gem ‘mysql2’
gem “meta_search”, “~> 1.1.1”
gem “will_paginate”, “~> 3.0.0”
gem “daemons”, “~> 1.1.3”
gem ‘declarative_authorization’, “~> 0.5.1”
gem ‘authlogic’, ‘3.1.0’, :git =>
‘git://github.com/binarylogic/authlogic.git’
gem ‘paperclip’, ‘3.0.4’, :git =>
‘git://github.com/thoughtbot/paperclip.git’
gem ‘tiny_mce’, ‘~> 0.1.7’, :git => ‘git://github.com/kete/tiny_mce.git’
gem ‘friendly_id’, ‘~> 4.0.6’, :git =>
‘git://github.com/norman/friendly_id.git’
gem ‘simple-private-messages’, ‘0.0.0’, :git =>
‘git://github.com/jongilbraith/simple-private-messages.git’

group :assets do
gem ‘sass-rails’, ‘~> 3.2.3’
gem ‘coffee-rails’, ‘~> 3.2.1’
gem ‘jquery-rails’, ‘~> 2.0.1’

See GitHub - sstephenson/execjs: Run JavaScript code from Ruby for more supported

runtimes
gem ‘therubyracer’, :platform => :ruby
gem ‘uglifier’, ‘>= 1.0.3’
end

group :development do

gem ‘ruby-debug19’, ‘~> 0.11.6’, :require => ‘ruby-debug’

gem ‘ruby-debug19’, :require => ‘ruby-debug’

gem ‘thin’, ‘~> 1.2.11’
gem ‘exception_notification’, :git =>
‘git://github.com/rails/exception_notification.git’
end

group :test do
gem ‘factory_girl_rails’, “~> 1.0.1”
gem ‘faker’, “~> 0.9.5”
gem ‘shoulda’, “~> 2.11.3”
gem ‘simplecov’, “~> 0.4.2”
gem ‘mocha’, “~> 0.9.12”
gem ‘turn’, :require => false
gem ‘minitest’

=> below for spork

gem ‘guard’
gem “rb-fsevent”
gem “spork”
gem ‘spork-testunit’
gem “guard-spork”
end

To use ActiveModel has_secure_password

gem ‘bcrypt-ruby’, ‘~> 3.0.0’

To use Jbuilder templates for JSON

gem ‘jbuilder’

Use unicorn as the app server

gem ‘unicorn’

Deploy with Capistrano

gem ‘capistrano’

On Wednesday, June 27, 2012 12:54:41 PM UTC-4, Ylan wrote:

Did you remember to run bundle install after adding the gem?

If you precompile assets before deploying to production, use this

[snip]

I don’t see any obvious errors there, and I am assuming that you already
checked line 13 of application.js for correctness. At this point, I am out
of ideas on where the problem is. If I where you, I would start a blank
rails application in which you can precompile the assets. Then starts
looking for potential differences between the brand new app and yours.

So I did end up resolving this issue. There were 2 issues.

  1. jquery-rails doesn’t like being in the assets block of my Gemfile.
    Once
    I took it out of that block I was able to compile in production without
    any
    error. I happened to be passing through railscast and saw that one of
    Ryan
    Bates examples had that particular line under the assets block.

  2. I had an error in one of my .js files so removed the file and
    everything
    seems to be working as expected. I will see if I can figure out what is
    going on with that .js file at a later date.

Thanks for the help in trying to get me to solve this issue.

Sorry, I can’t be of more help.