Laravel 上传的图片没有显示,但链接存储正在工作

问题描述 投票:0回答:2

我目前正在使用 cyberpanel 将 2 个项目上传到我的 ubuntu 服务器。 (其中之一是https://simplycar.es/storage/fotos/1677542768-WhatsApp%20Image%202023-02-28%20at%2001.03.28.jpeg

两者都在Laravel中,使用相同的方式上传图片。

上传方式:

if (is_uploaded_file($request->file('foto'))) {
        $picture = time() . "-" . $request->file('foto')->getClientOriginalName();
        $request->file('foto')->storeAs('public/fotos', $picture);
    }

我已经有另一个以相同结构运行的上传图片的项目,它工作正常(https://chaincapitals.com/storage/logos/1669744070-C5l3mHJg_400x400.png)。

但这两个新项目不适用于上传的图像。它们不会出现在 URL (app.URL/(image-name)) 中,也不会出现在网站上。

我正在像往常一样写图像的路线:

{{asset('storage/fotos/'. \App\Models\Image::where('idCar' , $car->id)->first()->imagen)}}

存储链接有效,因为它出现在我的 FTP 应用程序中。

我试图重新生成符号链接也从 .PHP 文件生成它。

另外,我尝试了权限的事情,我尝试了这两件事:

chmod -R o+w storage
chmod -R o+w bootstrap/cache

此外,我尝试了在其他主题上看到的一些其他命令。

php laravel apache ubuntu
2个回答
1
投票

我不确定,当然。作为一个疯狂的猜测,检查你的许可,因为你说它适用于另一个项目。

sudo chown -R www-data:www-data storage/
sudo chmod -R 775 storage/

# finally 
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

0
投票

按照@Abdula Nilam 的回答,我得到以下错误:

流或文件“/home/simplycar.es/public_html/storage/logs/laravel.log”无法以附加模式打开:无法打开流:

我假设是因为存储文件夹的权限。

我修复了它:

sudo chmod -R ugo+rw storage

在此之后,我的应用程序可以正常工作了。

© www.soinside.com 2019 - 2024. All rights reserved.