4 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
將“FILESYSTEM_DRIVER=public”更改為
FILESYSTEM_DISK=public
或者完全刪除該行并直接在 filesystems.php 中將 public 文件夾設(shè)置為默認(rèn)磁盤,如下所示:
'default' => env('FILESYSTEM_DISK', 'public'),

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
這看起來更像是配置緩存問題,因?yàn)槟奈募到y(tǒng)看起來配置正確。
文件storage/app夾是laravel默認(rèn)磁盤(磁盤)的路徑local。由于您已指定使用 public 作為 .env 中的默認(rèn)磁盤,但您的應(yīng)用程序仍在使用本地磁盤路徑,因此看起來像是緩存問題
嘗試使用
php artisan config:clear
然后嘗試
request('avatar')->store('avatars');
如果確實(shí)是緩存問題,那么文件應(yīng)該存儲(chǔ)在storage/app/public文件夾中。
要獲取圖像的完整路徑,請(qǐng)使用
Storage::url('avatar/'.$user->avatar);
所以在訪問器中,使用
public function getAvatarAttribute($value)
{
return Storage::url('avatar/'.$value);
}
不推薦使用asset()獲取文件路徑,因?yàn)槿绻幸惶炷M麑⒋鎯?chǔ)切換到云(S3 或任何其他存儲(chǔ)?;旧?,您不想使用應(yīng)用程序的存儲(chǔ)文件夾),那么將asset()不會(huì)不再給你正確的路徑,你需要在任何地方改變它。但是當(dāng)使用存儲(chǔ)門面時(shí),您需要做的就是在 filesystems.php 中更改它
另外,為了自己測(cè)試一下,你也可以通過將磁盤指定為存儲(chǔ)方法的第二個(gè)參數(shù)來指定存儲(chǔ)時(shí)的磁盤
request('avatar')->store('avatars', 'public');
Storage::disk('public')->url('avatar/'.$user->avatar);

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
另外,不要忘記刪除public/storage
文件夾
然后重新運(yùn)行
php artisan config:clear
這個(gè)很重要
php artisan storage:link

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
另外,不要忘記刪除public/storage
文件夾
然后重新運(yùn)行
php artisan config:clear
這個(gè)很重要
php artisan storage:link
- 4 回答
- 0 關(guān)注
- 207 瀏覽
添加回答
舉報(bào)