検証環境・本番環境でSSL対応を行っていた際にassetヘルパでエラーが起きていたので備忘録として。
assetヘルパ
asset()
はよく使われていると思います。
第一引数のみを渡した場合はhttp://~
が返り値になります。
asset('hoge/hoge.jpg') // http://~が返り値
これだとSSL対応を行っていた場合はエラーになってしまいます。
しかし、assetヘルパは第二引数にtrue
を渡すと返り値がhttps://~
になります。
asset('fuga/fuga.jpg', true) // https://~が返り値
これでSSL対応してても大丈夫です。
このように、一部のみSSL対応といった場合はassetヘルパの第二引数にtrueを渡すことで対応ができます。
プロジェクト全体が常時SSLの場合はweb.php
やServiceProvider
にURL::forceScheme('https');
を記載することがベストプラクティスな気がします。
※調べるとたくさん記事が出てくるのでそちらを参照してください。
とはいえ、第二引数にtrue
を指定するとローカル環境でもhttps://~
になってしまうので、そこは動的に変えたほうが良さそうです。
$is_production = env('APP_ENV') === 'production' ? true : false;
asset('hoge/hoge', $is_production);
余談
urlヘルパやredirectヘルパも引数にbooleanを渡すことで制御可能です。
詳しくはググったり、ソースを読んでみてください。
終わり
readoubleでヘルパを覗いても記載されてないので調べるまで知らなかった知識。
以前調べた際にに知った事ですが、忘れると勿体ないので記事にしました。