表題の通り。httpsにならない。
セキュアでないだけでなく、CSSやjsの読み込みも失敗するので困る。
asset() や url() 、route() などLaravelには http/https を振り分ける機能があるはずなのに heroku ではそれがうまく機能してくれないようだった。
env の APP_ENV で強制的に振り分ける
production のとき、強制的にhttpsとしてアプリケーションを動かすようにルールを追記する。
参考) Deploy a Laravel 5 app to Heroku
- App/Providers/AppServiceProvider.php
+ use Illuminate\Support\Facades\URL; ... public function boot() { + if ($this->app->environment() == 'production') { + URL::forceScheme('https'); + } }
secure_asset() などもあるが、それだと route() や url() などは対応されない。 荒技だけど、これでひとまず解決はする。