【问题标题】:why are assets gems required when assets:precompile has been done?为什么资产:预编译完成后需要资产宝石?
【发布时间】:2012-10-05 06:34:26
【问题描述】:

鉴于下面的gemfile,并且资产是手动预编译和上传的,为什么该命令

rake RAILS_ENV=production db:schema:load

导致 ruby​​ 抱怨“资产”中的 gem 没有安装?我认为资产仅用于生产或未完成预编译的地方?

问题在于,似乎less/sass 需要的rubyracer 无法在目标架构(arm 处理器)上编译

# gemfile
source 'https://rubygems.org'

gem 'rails', '>= 3.2.8'
gem 'bcrypt-ruby', '>= 3.0.1'
gem 'faker', '1.0.1'
gem 'uuidtools'
gem 'simple_form', '>= 2.0.0'
gem 'devise'
gem 'pg', '>= 0.12.2'
gem 'json'
gem 'jquery-rails'

group :development, :test do
  gem 'sqlite3', '>= 1.3.5'
  gem 'rspec-rails', '>= 2.11.0'
  gem 'annotate'
end

# Gems used only for assets and not required
# in production environments by default.

group :assets do
  gem 'coffee-rails', '>= 3.2.2'
  gem 'uglifier', '>= 1.2.3'
  gem 'therubyracer'
  gem 'sass-rails'
  gem 'less-rails'
  gem 'less-rails-bootstrap'
  gem 'will_paginate'
  gem 'bootstrap-will_paginate'
  gem 'less-rails-fontawesome'
end

group :test do
   gem 'capybara', '>= 1.1.2'
   gem 'rb-fchange'
   gem 'rb-notifu'
   gem 'factory_girl_rails'
   gem 'database_cleaner'
end

【问题讨论】:

  • 谢谢,我确实按照那里的大部分说明进行操作,尤其是本地预编译。我仍然收到错误 rake RAILS_ENV=production db:schema:load Could not find gem 'therubyracer (>= 0) ruby​​' in the gems available on this machine.运行 bundle install 以安装缺少的 gem。

标签: ruby-on-rails ruby-on-rails-3 rake ruby-on-rails-3.2 therubyracer


【解决方案1】:

试试这个,gem 'therubyracer' 写出资产。

group :production do
 gem 'therubyracer'
end

然后捆绑安装

【讨论】:

  • 正如我在原始问题中提到的,我的目标是在生产中需要 ruby​​racer,因为它不在目标处理器 (arm) 上编译。
  • 您使用的是哪个 rake 版本? RAILS_ENV=production bundle exec rake db:schema:load
  • 非常感谢您的帮助。耙子,版本 0.9.2.2。您的命令仍然给出相同的错误。 (尝试加载 ruby​​racer)
  • 呃。甚至 bundle exec rake db:schema:load RAILS_ENV=production --without development test assets 也会出现同样的错误
猜你喜欢
  • 1970-01-01
  • 2013-09-28
  • 2012-11-06
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多