Laravelで開発している時、ローカルではHTTP、本番やステージングではHTTPSでアセットを読み込んでほしい場合があります。asset()を使う時とかです。

そんな時は.envファイルのAPP_ENVに書かれている環境によってスキーマを変更します。例えば、ローカル環境ならAPP_ENV=localと書き、httpで読み込むといった感じです。

今回は本番環境とローカル環境での切り替えを行います。

AppServiceProviderboot()に本番環境だったらスキーマをhttpsに変換するように記述します。以下をご覧ください。

まず、環境の確認です。\Config::get('app.env')で環境の文字列を取得できます。これはconfig\app.phpenvというキーに対応した値のことで、これが.envファイルのAPP_ENVによって変化するわけです。

そして、\URL::forceScheme('https')で本番環境の時だけhttpsに変換します。

ちなみに

asset()は第2引数にtrueを指定するとhttpsになります。