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