0

Railsアプリケーションがあり、多くのインスタンスをさまざまなドメインにデプロイする予定です。もともと私はそれが1つのドメインにあることだけを意図しています。

ドメインごとに、さまざまな場所でハードコードされたすべての値を置き換える必要があることを認識しています。これらには以下が含まれます:

  • アセットホストパス(アセットは同じドメインに存在します)
  • いつでも-gemの:application設定(2つのドメインが同じサーバーを共有できるため、これはcrobtab更新の衝突を回避するためです)
  • イベントをトリガーするために独自のアドレスにcurlを使用するタスクの一部
  • リクエストオブジェクトなしで画像の完全なURLを計算する場合、carrierwaveにはハードコードされた値が必要です。

質問

これを設定する戦略はありますか?

  • 設定をソース管理にコミットしないでください(のようにdatabase.yml.example
  • Railsの外部のコードはそれにアクセスできます(gemがRails環境をロードしないときはいつでも)
  • ドメインにアクセスする方法は一貫している可能性があります
4

1 に答える 1

1

実行できるアプローチの1つは、デプロイメントごとのプロパティを持つYAMLファイルを作成することです。開発バージョンをチェックインして、デプロイスクリプトを正しいバージョンで上書きすることもできます。

通常、その構成ファイルをshared / config(capistranoスタイルのレイアウトを想定)に配置し、デプロイ中に現在のリリースにシンボリックリンクします。

于 2012-06-06T07:16:21.927 に答える