我在生产服务器上遇到了这个错误,无法找出原因。它在运行此命令时发生:
bundle exec rake assets:precompile RAILS_ENV=production
我正在使用Rails 3.1.0.rc6
答案 0 :(得分:76)
这很可能是因为config/application.rb
不需要rails/all
(默认设置),但有些自定义要求。
要解决此问题,请将以下内容添加到config/application.rb
:
require 'sprockets/railtie'
答案 1 :(得分:4)
我知道这是一篇很老的帖子,但我认为如果我把它添加到答案中,它可能对某人(可能是我未来的自己)有所帮助。
load 'deploy/assets'
require 'sprockets/railtie'
答案 2 :(得分:3)
我认为这可能是因为你不需要生产中的资产宝石。默认情况下,rails期望您在生产中预编译资产。在config / application.rb中更改此内容:
注释掉这一行:
Bundler.require * Rails.groups(:assets =>%w(开发测试))
取消注释这一行:
Bundler.require(:default,:assets,Rails.env)
答案 3 :(得分:1)
这很奇怪。您可以随时尝试添加
load "sprockets/assets.rake"
到您的Rakefile。它应该包含在actionpack railtie中。
我的Rakefile包含:
require File.expand_path('../config/application', __FILE__)
Qnm::Application.load_tasks
答案 4 :(得分:0)
出于纯粹的习惯,我正在仅API应用程序的根目录中运行此命令,该应用程序当然没有资产。