今からお前んちこいよ

ベルリンにて細々とお勉強。

Laravel5.5 + Heroku が httpsにならない件

表題の通り。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() などは対応されない。 荒技だけど、これでひとまず解決はする。