Мы обновляем наше приложение с Rails 2 до Rails 3.1, и у меня возникают проблемы с конвейером ресурсов.
В моем config / application.rb есть следующее:
if defined?(Bundler)
Bundler.require *Rails.groups(:assets => %w(development test))
# Bundler.require(:default, :assets, Rails.env)
end
# Enable the asset pipeline
config.assets.enabled = true
# config.assets.prefix = "/assets"
config.assets.paths << "#{Rails.root}/public/images"
config.assets.paths << "#{Rails.root}/public/stylesheets"
config.assets.paths << "#{Rails.root}/public/javascripts"
config.assets.version = '1.0'
И затем это в development.rb
# Do not compress assets
config.assets.compress = false
config.assets.debug = true
Я знаю, что это нежелательное поведение для конвейера, но мы делаем это таким образом, чтобы убедиться, что при объединенииОбновите обратно до нашей главной ветки, все старые файлы учтены должным образом.
У меня есть следующий файл "all.css" в моем каталоге public / stylesheets:
/*
*= require ezform
*= require jquery-ui-1.8.9.custom
*= require thickbox
*= require yui-upload
*= require styles
*/
Я звоню из моего файла layouts / application.html.erb следующим образом:
<%= stylesheet_link_tag "all" %>
Загружая вещи в браузере, однако я не получаю стилей (или, в данном случае, javascript).Firebug и Chrome говорят мне, что файлы .css и .js ищутся в "/ assets" - это похоже на то, что конвейер ищет не все и связывает его так, как должен.
Ошибка выглядит такthis:
GET http://localhost:3000/assets/jquery-dependent.js 500 (Internal Server Error)
Если я переместлю «all.css» в / app / assets, он все равно не найдет его.Перемещение в / assets останавливает ошибку, но таблица стилей не компилируется, и я все еще не получаю никаких стилей в своем браузере.
В моем журнале также есть множество ошибок, которые выглядят так:
Started GET "/assets/defaults.js?body=1" for 127.0.0.1 at 2011-12-22 14:35:36 -0600
[2011-12-22 14:35:36] ERROR NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
/Users/kevin/.rvm/gems/ruby-1.9.2-p0@media3/gems/rack-1.3.5/lib/rack/handler/webrick.rb:71:in `service'
/Users/kevin/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/Users/kevin/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/Users/kevin/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
cache: [GET /assets/defaults.js?body=1] miss, store
Served asset /defaults.js - 200 OK (1ms)
Чего мне не хватает?