1

我在 JRuby 中有一个 rails 应用程序,当我运行它时,rake assets:precomile它只会创建一个/public/assets/manifest.yml包含以下内容的文件:

--- {}
...

所有的资产都没有被预编译,但是当我尝试跟踪这个时我没有得到任何错误:

tbraun@tbraun-DEBIAN:~/Dokumente/Entwicklung/RubyOnRails/Passbildkartei$ rake assets:precompile --trace
** Invoke environment (first_time)
** Execute environment
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/home/tbraun/.rvm/rubies/jruby-1.6.7.2/bin/jruby /home/tbraun/.rvm/gems/jruby-1.6.7.2/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
** Invoke environment (first_time)
** Execute environment
** 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 
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:primary
** Invoke environment (first_time)
** Execute environment
** Invoke assets:precompile:nondigest (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment 
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:nondigest

但是我的资产目录中有一些图像、javascripts 和样式表,我不知道我能做些什么来解决这个问题。

我的 JRuby 版本是:

jruby 1.6.7.2 (ruby-1.9.2-p312) (2012-05-01 26e08ba) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [linux-amd64-java]

这是我正在使用的宝石:

source 'https://rubygems.org'

gem 'rails', '3.2.3'
gem "haml", "~> 3.1.4"
gem "paperclip", "~> 3.0"
gem "will_paginate", "~> 3.0.3"
gem "devise", "~> 2.1.2"
gem "devise_ldap_authenticatable", "~> 0.6.1"

gem 'activerecord-jdbcsqlite3-adapter'
gem 'activerecord-jdbcmysql-adapter'

gem 'jruby-openssl'
gem 'json'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  gem 'therubyrhino'

  gem 'uglifier', '>= 1.0.3'
  gem "haml-rails", "~> 0.3.4"

  gem "warbler", "~> 1.3.5"
end

gem 'jquery-rails'

有谁知道如何解决这个问题?

4

3 回答 3

1

有同样的问题。devise再次宝石。使用heroku,所以我的配置文件中没有有效的生产数据库信息。将我的开发配置复制到 config/database.yml 中的生产部分,以使其正常工作。可能有更简单的方法...

于 2012-12-01T19:52:16.647 回答
1

我自己发现了问题。这是devise导致失败的gem,assets:precomile因为它需要访问数据库。但我的生产数据库只能通过 VPN 访问。所以你只需要确保在预编译资产时使用设计时可以访问数据库。

于 2012-07-14T16:52:12.750 回答
1

实际上,您可以通过添加来避免这种情况

config.assets.initialize_on_precompile = false

到你的 application.rb

于 2012-07-14T19:19:27.577 回答