Ruby on rails 资产:预编译失败,返回“0”;“文件存在”;在Rails 3.2.15上使用资产管道

Ruby on rails 资产:预编译失败,返回“0”;“文件存在”;在Rails 3.2.15上使用资产管道,ruby-on-rails,ruby-on-rails-3,asset-pipeline,sprockets,Ruby On Rails,Ruby On Rails 3,Asset Pipeline,Sprockets,我无法为启用Rails 3.2.15资产管道的应用程序预编译我的资产 Gemfile: # Asset pipeline group :assets do gem 'sass-rails', '3.2.5' gem 'coffee-rails', '3.2.2' gem 'uglifier', '1.3.0' end production.rb # Disable Rails's static asset server (Apache or nginx will a

我无法为启用Rails 3.2.15资产管道的应用程序预编译我的资产

Gemfile:

# Asset pipeline
group :assets do
  gem 'sass-rails',   '3.2.5'
  gem 'coffee-rails', '3.2.2'
  gem 'uglifier',     '1.3.0'
end
production.rb

  # 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

  # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
  config.assets.precompile += %w( *.js *.css )

  # Choose which compressors to use
  # config.assets.js_compressor  = :uglifier
  # config.assets.css_compressor = :scss
以下是我运行的命令:

bundle exec rake assets:clean RAILS_ENV=production --trace
bundle exec rake assets:precompile RAILS_ENV=production --trace
我得到以下错误:

** Invoke assets:precompile (first_time)
** Execute assets:precompile
/usr/bin/ruby1.9.1 /usr/local/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
** 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!
File exists - (/media/shared/code/me/app/tmp/cache/assets/sprockets%2F19d4dbfec65d2b21144310264f4d8c7320131106-63076-sh3p6h, /media/shared/code/me/app/tmp/cache/assets/D04/B00/sprockets%2F19d4dbfec65d2b21144310264f4d8c73)
/usr/lib/ruby/1.9.1/fileutils.rb:519:in `rename'
/usr/lib/ruby/1.9.1/fileutils.rb:519:in `block in mv'
/usr/lib/ruby/1.9.1/fileutils.rb:1515:in `block in fu_each_src_dest'
/usr/lib/ruby/1.9.1/fileutils.rb:1531:in `fu_each_src_dest0'
/usr/lib/ruby/1.9.1/fileutils.rb:1513:in `fu_each_src_dest'
/usr/lib/ruby/1.9.1/fileutils.rb:508:in `mv'
/usr/lib/ruby/gems/1.9.1/gems/activesupport-3.2.15/lib/active_support/core_ext/file/atomic.rb:36:in `atomic_write'
磁盘上只有后一个文件(每次运行命令时似乎都会更改)可见,前一个文件似乎是一个临时文件,创建后再移动。它在看到错误后不可见

你知道这到底是什么意思吗

我正在运行Ubuntu12.04.3LTS、Rubygems 2.1.6、Bundler 1.3.5和Ruby 1.9.3p429


谢谢

您可以手动删除
tmp
内容
rm-rf tmp/*
?,然后再次预编译,有帮助吗?这似乎奏效了?!在尝试预编译之前,我还运行了
rm-rfpublic/assets/
,以获得良好的度量。。。我还不想接受这个答案,因为它看起来不令人满意,但我会在接下来的几天里测试并回来。谢谢你的帮助!有什么最新消息吗?我在Chef deploy/before_migrate.rb脚本中遇到了类似的问题,需要一个干净的解决方案。
rake assets:clobber
可能会有所帮助。不确定。上面的诺恩正在为我们解决这个神秘的问题:/