私はこの振る舞いに出くわし、他の誰かがそれを見たのではないかと思っていました. 回避策があるので、ショーストッパーではありません。
Cedar スタックを使用して、Heroku で新しいアプリを作成しました。複数の環境をデモンストレーションするとき、次の構成変数を追加しました。
heroku config:add RACK_ENV=staging --app appname
環境変数が設定されていることを視覚的に確認し、次のルートを単純な Sinatra の例に入れました。
get '/?' do
ENV['RACK_ENV']
end
ラップトップでローカルにテストしたところ、期待どおりの結果が得られましたdevelopment
。
Heroku にプッシュして、herokuapp.com で同じルートをヒットすると、development
代わりにstaging
.
Procfile を介して Web サーバーを Thin から Unicorn に切り替え、変更を Heroku にプッシュしました。
ルートにたどり着くと、予想される が得られstaging
ます。
他の誰かがこれを見たことがありますか?Thin を実行していた別のプロジェクトでの回避策は、New Relic アプリ名から環境をキーオフすることでした。(New Relic が動作する必要があり、現在 Cedar と New Relic と Unicorn が連携しているため、Unicorn に切り替えませんでした)。