2013-04-06 3 views
1

У меня возникла странная проблема, с которой я никогда не сталкивался при развертывании приложений на вашем сервере.Прекомпиляция активов, похоже, не работает

Я бегу:

bundle exec rake assets:precompile 

Это выход:

/home/ubuntu/.rvm/rubies/ruby-2.0.0-p0/bin/ruby /home/ubuntu/.rvm/gems/ruby-2.0.0-p0/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets 
/home/ubuntu/.rvm/rubies/ruby-2.0.0-p0/bin/ruby /home/ubuntu/.rvm/gems/ruby-2.0.0-p0/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets 

Это мое приложение/активы/JavaScripts/application.js:

//= require jquery 
//= require jquery_ujs 
//= require jquery.ui.all 
//= require twitter/bootstrap 
//= require_tree . 

И это мой app/assets/stylesheets/application.css:

/* 
*= require_self 
*= require jquery.ui.all 
*= require_tree . 
*/ 

После того как я прекомпилировать, это мой общедоступный/активы/приложения 946a5a61f067fe19fe65ffd12f8c4a20.js

//= require jquery 
//= require jquery_ujs 
//= require jquery.ui.all 
//= require twitter/bootstrap 
//= require_tree . 

Так что это точно так же, как и исходный файл.

И public/assets/application-df7525e917401704ef453cb56bf16697.css является пустым файлом.

Это мой Gemfile:

source 'http://rubygems.org' 

gem 'rails', '3.1.1' 

# Bundle edge Rails instead: 
# gem 'rails',  :git => 'git://github.com/rails/rails.git' 

gem 'pg' 
gem 'settingslogic' 
gem 'jquery-rails' 
gem 'jquery-ui-rails' 
gem 'json' 
gem 'will_paginate', '~>3.0.pre2' 
gem 'friendly_id', '~> 4.0.0.beta14' 
gem 'rails3-jquery-autocomplete' 
gem 'omniauth' 
gem 'omniauth-twitter' 
gem 'omniauth-facebook' 
gem 'paperclip', '~> 3.0' 
gem 'public_activity' 
gem 'rails-timeago' 
gem 'therubyracer', :require => 'v8' 
gem 'less-rails' 
gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git' 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails' 
    gem 'coffee-rails' 
    gem 'uglifier', '>= 1.0.3' 
end 

# To use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# Use unicorn as the web server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'ruby-debug19', :require => 'ruby-debug' 

group :test do 
    # Pretty printed test output 
    gem 'turn', :require => false 
end 

и конфигурации/среда/production.rb:

Yupp::Application.configure do 
    # Settings specified here will take precedence over those in config/application.rb 

    # Code is not reloaded between requests 
    config.cache_classes = true 

    # Full error reports are disabled and caching is turned on 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 

    # Disable Rails's static asset server (Apache or nginx will already do this) 
    config.serve_static_assets = false 

    # Compress JavaScripts and CSS 
    config.assets.compress = true 

    # Don't fallback to assets pipeline if a precompiled asset is missed 
    config.assets.compile = false 

    # Generate digests for assets URLs 
    config.assets.digest = true 

    #config.assets.initialize_on_precompile = false 

#... 
end 

Любое направление будет очень цениться.

+0

Давайте поясним: проблема в вашем случае заключается в том, что после развертывания у вас есть пустой файл '.css'? Еще одно предложение: вы можете рассмотреть возможность обновления Rails до 3.2. –

+0

Я развернул приложение на своем сервере EC2, и у меня есть активы: прекомпиляция там. После прекомпиляции public/assets application.css пуст, а application.js имеет только строки запроса. – Yuyo

+0

Проверьте, не было ли у вас раскомпонуемое 'load 'deploy/assets'' в вашем файле Capfile. –

ответ

2

я потратил 2 часа на это, то я нашел https://github.com/sstephenson/sprockets/issues/352

Я пытался понизить рубин до 1.9.3 и сделать прекомпиляцию затем добавить скомпилированные файлы репо .. Это не то, что я хочу, но это работает ..

Обновление: какая версия рельсов вы используете? Я использовал 3.2.2, у которого есть такая проблема. 3.2.13 работает отлично (с рубином 2.0).

3

Что решило проблему для меня:

  • установить последнюю версию рельсов в Gemfile (3.2.14 сейчас)

  • bundle update

  • bundle install

  • перезагрузка приложение touch tmp/restart.txt

+0

Имела ту же самую проблему при развертывании экземпляра AWS EC2 с Capistrano. Не работал с Rails 3.2.1, поэтому я обновился до 3.2.14, и он волшебным образом работает сейчас. –

Смежные вопросы