Мы обновляем наше приложение с Rails 2 до Rails 3.1, и у меня возникают проблемы с конвейером активов.Rails 3.1 конвейер активов, не видящих файлов
У меня есть следующие в моей конфигурации/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,» в моем общедоступном каталоге/Стилей:
/*
*= require ezform
*= require jquery-ui-1.8.9.custom
*= require thickbox
*= require yui-upload
*= require styles
*/
Я зову его из моих раскладок/application.html.erb файла следующим образом:
<%= stylesheet_link_tag "all" %>
Загрузка вещей в браузере, однако, у меня нет стилей (или javascript, если на то пошло). Firebug и Chrome говорят мне, что файлы .css и .js ищутся в «/ assets» - это похоже на то, что конвейер не просматривает все и не связывает его так, как должно.
ошибка выглядит следующим образом:
GET http://localhost:3000/assets/jquery-dependent.js 500 (Internal Server Error)
Если я двигаюсь «all.css» в/приложение/активы, он все равно не найдут. Перемещение его в/активы останавливает ошибку, но таблица стилей не компилируется, и я до сих пор не получаю никаких стилей в своем браузере.
Там также множество ошибок, которые выглядят, как это в моем журнале:
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/[email protected]/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)
Что мне не хватает?
Возможно, вы используете memcached для своего магазина сеансов? –