【发布时间】:2014-08-04 12:19:12
【问题描述】:
在我的虚拟主机中,我有:
<Directory /var/www/prod/myapp/myapp/public>
...
RailsEnv production
...
</Directory>
虽然任何依赖于 production 的代码都在应用程序本身中正确运行(例如:如果 Rails.env.production? 则显示 Google Analytics 代码),当我从 /var/www/prod/myapp/myapp 运行 rake about 时,我得到:
Application root /var/www/prod/myapp/myapp
Environment development
Database adapter mysql2
这意味着我必须在任何与部署相关的 rake 内容前加上 RAILS_ENV=production。诚然,此时这一切都在部署脚本中,所以这并不重要,但为什么 Rake 不知道它是生产环境?乘客设置还不够吗?如果没有,我该如何解决它,这样我就不需要手动指定环境了?
旁注:我在同一个盒子上运行应用程序的开发实例,在其相应的虚拟主机配置中将环境设置为开发。
编辑:Phusion 乘客版本 4.0.20
【问题讨论】:
-
您在使用 Capistrano 吗? rvm?两者都有?
-
rvm,是的,Capistrano,没有。
-
可能问题来自您的部署。你是干什么用的?
-
重新阅读我发布的内容。我的部署脚本没有任何问题,因为它为命令明确指定了 RAILS_ENV 变量。问题是在给定配置的 rake 级别是否有必要这样做。
标签: ruby-on-rails environment-variables passenger