I'm trying to get a new production server up and running and it is so close. When I execute
RAILS_ENV=production rake assets:precompile
This error is returned
undefined method `[]' for nil:NilClass
When I run it with a --trace, this is retuned
$RAILS_ENV=production rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
rake aborted!
undefined method `[]' for nil:NilClass
(in /home/deploy/pm/app/assets/stylesheets/jquery-ui-1.8.16.custom.css.scss)
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
I appreciated any help anyone can offer, ideas, etc.
Here is the Gemfile and bundle list
source 'http://rubygems.org'
gem 'cancan'
gem 'client_side_validations'
gem 'devise', '~> 1.5.3'
gem 'execjs'
gem 'haml'
gem 'httparty'
gem 'jquery-rails'
gem 'mysql2'
gem 'paperclip', "~> 2.4"
gem 'rails', '3.1.0'
gem 'rails3-jquery-autocomplete'
gem 'rake', '0.9.2'
gem 'remotipart', "~> 1.0"
gem 'simple_datatables'
gem 'therubyracer'
gem 'validates_timeliness', '~> 3.0.2'
gem 'will_paginate', '~> 3.0'
gem 'geocoder', '~> 1.1.2'
#temp for pm.onlinetherapy.com
gem 'faker'
group :test do
gem 'capybara'
gem 'cucumber-rails', :require => false
gem 'database_cleaner'
gem 'factory_girl_rails'
gem 'faker'
gem 'guard-rspec'
gem 'selenium-webdriver', '2.7.0'
gem 'webrat'
end
group :development, :test do
gem 'faker'
gem 'haml-rails'
gem 'hpricot'
gem 'rspec-rails'
gem 'ruby_parser'
gem 'web-app-theme', '~> 0.8.0'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sprockets'
gem 'sass', '3.1.20'
gem 'sass-rails', '3.1.4' # downgraded to 3.1.4 to avoid a stack overflow error in rake assets:precompile
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# bundle install has a problem installing linecache19, a dependency of ruby-debug19
# try 'sudo gem install linecache19' to fix the problem, and then do bundle install again
gem 'ruby-debug19', :require => 'ruby-debug'
And the bundle list
gives
Gems included by the bundle:
* actionmailer (3.1.0)
* actionpack (3.1.0)
* activemodel (3.1.0)
* activerecord (3.1.0)
* activeresource (3.1.0)
* activesupport (3.1.0)
* archive-tar-minitar (0.5.2)
* arel (2.2.3)
* bcrypt-ruby (3.0.1)
* builder (3.0.2)
* bundler (1.2.0)
* cancan (1.6.8)
* capybara (1.1.2)
* childprocess (0.3.5)
* client_side_validations (3.1.4)
* cocaine (0.3.0)
* coffee-rails (3.1.1)
* coffee-script (2.2.0)
* coffee-script-source (1.3.3)
* columnize (0.3.6)
* cucumber (1.2.1)
* cucumber-rails (1.3.0)
* database_cleaner (0.8.0)
* devise (1.5.3)
* diff-lcs (1.1.3)
* erubis (2.7.0)
* execjs (1.4.0)
* factory_girl (4.0.0)
* factory_girl_rails (4.0.0)
* faker (1.0.1)
* ffi (1.1.5)
* geocoder (1.1.3)
* gherkin (2.11.2)
* guard (1.3.2)
* guard-rspec (1.2.1)
* haml (3.1.7)
* haml-rails (0.3.4)
* hike (1.2.1)
* hpricot (0.8.6)
* httparty (0.8.3)
* i18n (0.6.1)
* jquery-rails (2.1.2)
* json (1.7.5)
* json_pure (1.7.5)
* jsonify (0.3.1)
* jsonify-rails (0.3.2)
* libv8 (3.3.10.4)
* linecache19 (0.5.12)
* listen (0.5.0)
* mail (2.3.3)
* meta_search (1.1.3)
* mime-types (1.19)
* multi_json (1.3.6)
* multi_xml (0.5.1)
* mysql2 (0.3.11)
* nokogiri (1.5.5)
* orm_adapter (0.0.7)
* paperclip (2.7.0)
* polyamorous (0.5.0)
* polyglot (0.3.3)
* rack (1.3.6)
* rack-cache (1.0.3)
* rack-mount (0.8.3)
* rack-ssl (1.3.2)
* rack-test (0.6.1)
* rails (3.1.0)
* rails3-jquery-autocomplete (1.0.9)
* railties (3.1.0)
* rake (0.9.2)
* rdoc (3.12)
* remotipart (1.0.2)
* rspec (2.11.0)
* rspec-core (2.11.1)
* rspec-expectations (2.11.3)
* rspec-mocks (2.11.2)
* rspec-rails (2.11.0)
* ruby-debug-base19 (0.11.25)
* ruby-debug19 (0.11.6)
* ruby_core_source (0.1.5)
* ruby_parser (2.3.1)
* rubyzip (0.9.9)
* sass (3.1.20)
* sass-rails (3.1.4)
* selenium-webdriver (2.7.0)
* sexp_processor (3.2.0)
* simple_datatables (0.2.1)
* sprockets (2.0.4)
* therubyracer (0.10.2)
* thor (0.14.6)
* tilt (1.3.3)
* timeliness (0.3.6)
* treetop (1.4.10)
* tzinfo (0.3.33)
* uglifier (1.3.0)
* validates_timeliness (3.0.14)
* warden (1.2.1)
* web-app-theme (0.8.0)
* webrat (0.7.3)
* will_paginate (3.0.3)
* xpath (0.1.4)
In my case the error appeared after I created a file in
apps/assets/stylesheet/fonts.css
This file had a call tofont-url()
like:When I renamed this file to
font.scss
the errorundefined method '[]' for nil:NilClass
just dissapearedI got the same issue and I resolve this by:
.css
file with contains SCSS variables or pattern like@
eg.@font-face
to.scss
.css.map
files (if there any).css.map
Hope this will help to save your precious time debugging assets precompilation issues related to the stylesheet.
I using Rails 4.2.8 and i fix this issue with this way:
Find in all project with key: asset-url.
If have any file css has this, please change it to scss.
Commit -> Deploy. It working.
I think this may have broken once I'd upgraded to Rails 3.2.16. I just needed to update the sass-rails gem to fix this.
I had a similar problem as Cristiam. I'm using Rails 4.0 and I had a call to
image-url()
in a.css
file.I just had to rename the file to
<filename>.scss
and it worked fine for me, too.