我无法预编译我的应用程序
Posted
技术标签:
【中文标题】我无法预编译我的应用程序【英文标题】:I can not precompile my application 【发布时间】:2014-04-29 09:11:58 【问题描述】:我不能用命令预编译 --> bundle exec rake assets:precompile
,它返回我这个错误 --> Don't know how to build task 'assets:precompile'.
在预编译之前我做了一个bundle install --deployment --without development test
Rails 3.0.11
Ruby 1.9.2p320(2012-04-20 修订版 35421)[x86_64-linux]
【问题讨论】:
Rails 3.0.x 中还没有资产管道。这是在 Rails 3.1 中引入的。 【参考方案1】:您说您使用 bundle install 进行预编译,这不会预编译资产,而只是安装您的 gem,如果您想将更新的 gem 安装到 rails 服务器,只需再次运行 bundle install
或 bundle update
。 rails 3.0 没有资产管道。
如果您确实想使用资产管道,请参阅文档中的 this backport:
在您的 Gemfile 中:
gem "sprockets_rails3_backport"
...plus whatever supplementary gems you want for the asset pipeline:
gem 'coffee-script', '2.2.0'
gem 'therubyracer', '0.9.9'
gem 'uglifier', '>= 1.0.3'
在你的 routes.rb 中:
MyApp::Application.routes.draw do
if (app = Rails.application).config.assets.compile
mount app.assets => app.config.assets.prefix
end
# ...
end
以下是各种 config.assets 选项及其默认值:
config.assets.paths = []
config.assets.precompile = [ Proc.new |path| !['.js', '.css'].include?(File.extname(path)) ,
/(?:\/|\\|\A)application\.(css|js)$/ ]
config.assets.prefix = "/assets"
config.assets.version = ''
config.assets.debug = false
config.assets.compile = true
config.assets.digest = false
config.assets.manifest = nil
config.assets.cache_store = [ :file_store, "#root/tmp/cache/assets/" ]
config.assets.js_compressor = nil
config.assets.css_compressor = nil
config.assets.initialize_on_precompile = true
【讨论】:
以上是关于我无法预编译我的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
rails 应用程序未启动,资产上的“ActiveSupport::Deprection”错误:预编译