複数の環境へ対応する
コンテンツの規模がある程度大きくなるとリソースによって参照先のサーバを変える事があります。
画像ファイルはAサーバ、HTMLはBサーバといった具合でしょうか。
これだけなら普通にHTMLファイルを書き換えてしまえばよいですが、実際には
- プロダクション環境
- ステージング環境
- 開発環境
と複数の環境があり、参照先をファイルへ直接書いてしまうと対応しきれません。
これらの対処方法としてPHPのSmartyを例にまとめてみました。
以下、用意するもの
HTMLファイル(Smartyのテンプレート)
{load_configs="config.ini"} <a href="{#server_api#"}/ad/jump/id/{$id}"> <img src="{#server_img#}/img/banner.png" /> </a>
設定ファイル
server_api = http://api.hogehoge.jp server_img = http://img.hogehoge.jp
phpファイル
$smarty = new Smarty(); $smarty->configs = "configs"; $smarty->assign('id', $id);
出力結果
<a href="http://api.hogehoge.jp/ad/jump/id/12345"> <img src="http://img.hogehoge.jp/img/banner.png" /> </a>
設定ファイルも切り替える
しかし、この形だと環境毎に設定ファイルが必要となります。
シンボリックリンクを使ってここも柔軟性を持たせていきます。
プロダクション環境
configs_prod/config.ini
server_api = http://api.hogehoge.jp server_img = http://img.hogehoge.jp
ステージング環境
configs_stage/config.ini
server_api = http://api.stage.hogehoge.jp server_img = http://img.stage.hogehoge.jp
開発環境
configs_devel/config.ini
server_api = server_img =