讓你的網址支持HTTPS協定

症狀:當透過HTTPS來訪問網站,來自Voyager管理的圖片都無法正常載入

原因:圖片網址是被Voyager透過以下程式碼來生成的:

Storage::disk(config('voyager.storage.disk'))->url($file);

假如voyager.storage.disk是設定為 public(預設就是這個),而且public也是Laravel預先所使用的資料夾,就是storage/app/public這個路徑,那麼url屬性在磁碟設定會是如下:

'url' => env('APP_URL').'/storage',

懶人包就是,如果你在.env檔案裡頭所設定的APP_URL首頁網址不是HTTPS協定的話,所生成的圖片網址同樣也不會是HTTPS協定

解法

如果你從public磁碟設定裡把env('APP_URL')這段給拿掉,之後圖片生成網址將會變成相對網址,就一定會使用訪客所用的網域以及協定

假如你需要的是完整的URL,你可以在Voyager::image('...')程式碼的外面再包一個asset(),就像下面這樣:

asset(Voyager::image('...'))

這樣就會根據訪客的網域以及協定來生成完整的圖片網址

Copyright © Goblin Lab Studio 2021 all right reserved,powered by Gitbook該文件修訂時間: 2021-01-02 16:23:39

results matching ""

    No results matching ""