作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 deploy.rb
,相信:rails_env
通常由 require 'capistrano/rails'
设置在您的 Capfile
中找到.我正在使用 rails,但没有使用内置 Assets 管道,因此,不要使用 capistrano/rails 并且处于必须手动设置的困境 :rails_env
在 deploy.rb
在暂存和生产部署之间切换时。这看起来很愚蠢,因为在执行 cap staging deploy
时总是包含环境。或 cap production deploy
.我发布了这个问题,因为它似乎是一个相当常见的痛点,但解决方案很简单,但经过多次谷歌搜索后,我空手而归。因此,我挖掘了 Capistrano 3.1.0
源代码来弄清楚如何访问在命令行上输入的阶段变量,并将跟进一个简短的回答,做一些解释。
最佳答案
简单的答案是在 deploy.rb
的顶部附近添加以下行:
set :rails_env, fetch(:stage)
:stage
设置在
capistrano/setup
这在您的
Capfile
中是必需的.此脚本为
config/deploy
中定义的每个阶段创建 rake 任务。 .在 rake 任务的定义中,您会发现以下内容:
set(:stage, stage.to_sym)
这是您的
cap staging deploy
中的 stage/rails_env 变量或
cap production deploy
命令。
关于capistrano - 如何从 Cap deploy 命令访问 rails_env?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23019503/
我是一名优秀的程序员,十分优秀!