使用 Laravel 在本地端測試串接第三方服務時我們會用到 ngrok 這個 proxy 服務,但你可能會發現既使修改了 .env 裡的 APP_URL 後,內建的 url generator 並沒有產生符合預期的 URL 網址。
使用 url 或是 route 時產生 localhost:8000 的情形
如果你遭遇到這個問題,你可以在 app\Providers\AppServiceProvider.php
這個檔案的 boot()
方法中加入以下呼叫:
URL::forceRootUrl(Config::get('app.url'));
這個方法讓你可以強迫 Laravel URL Generator 使用你指定的網址前綴。
產生的 assets URL 為 http,造成 mixed content 問題
由於 ngrok 預設是產生 https 網址,而現在的服務對於安全性要求也相當高,因此可能會要求你一定得使用 https 做為通訊協定 (例如:Facebook 登入的 Callback URL)。
如果你想要強制所有產生的網址都是 https 通訊協定,你會需要在 app\Providers\AppServiceProvider.php
這個檔案的 boot()
方法中加入以下呼叫:
URL::forceScheme('https');