【发布时间】:2011-09-22 07:12:10
【问题描述】:
我正在使用 Ruby on Rails 3.1.0 和 Capistrano。我在使应用程序在生产模式下工作时遇到问题(远程机器运行的是 Ubuntu 10.4 - 我的本地机器是运行 Snow Leopard 10.6.7 的 MacOS)。
当我使用 Capistrano 进行部署时,出现此错误:
uninitialized constant Rake::DSL
当我尝试访问网页时出现此错误:
ActionView::Template::Error (application.css isn't precompiled)
我应该怎么做才能使应用程序在远程机器上以生产模式工作?
在我的Capfile 文件中,我有:
# Uncomment if you are using Rails' asset pipeline
load 'deploy/assets'
在我的Gemfile 文件中,我有:
group :production do
gem 'execjs'
gem 'therubyracer'
end
如果我评论 load 'deploy/assets' 我不会再收到 uninitialized constant Rake::DSL 但我仍然会收到 ActionView::Template::Error (application.css isn't precompiled) 错误。
【问题讨论】:
-
您是否在生产环境中预编译资产?
-
@Mike Bevz - 你的意思是如果我运行
bundle exec rake assets:precompile命令?如果你是这个意思,我在远程服务器控制台\终端中运行该命令,但我得到:rake aborted! system/logo.png isn't precompiled (in /<my_application_path>/app/assets/stylesheets/application.css.scss) -
是的,我的意思是资产:预编译。 cap deploy:check 说什么?
-
@user12882 你能显示
production.rb文件吗? -
您是否通过
image_path('system/logo.png')引用您的css 文件中的图像? sass 管道为此提供了一些辅助函数。 guides.rubyonrails.org/asset_pipeline.html
标签: ruby-on-rails ruby ruby-on-rails-3 capistrano asset-pipeline