因此,我已经使用php artisan storage:link
创建了一个存储链接,并且在 localhost 上可以正常使用,但是,当我在共享主机上部署项目时,它不会显示任何图像。这是我的托管目录结构:
- home2/username
: + other hosting folders
: - MyLaravelWebSite
: : + other laravel folders
: : - storage
: : : - app
: : : : - public
: : : : : -images
: : : : : : * some-image.jpg
: : : : * gitignore
: : : + framework
: : : + logs
: - public_html
: : + assets
: : + storage // symlink
: : * index.php
图像上传完全正常,但是每当我尝试显示它们时,它们都不会显示,而它们在localhost上却显示完全正常。我认为符号链接无法正常工作。我该如何运作?
P.s:我在cPanel上没有CLI的任何访问权限。
答案 0 :(得分:1)
您可以使用PHP和Laravel帮助器方法执行相同的操作,只需运行一次此代码(例如,将其添加到控制器中并调用一次)即可手动创建存储链接:
use Illuminate\Support\Facades\File;
File::link(
storage_path('app/public'), public_path('storage')
);
答案 1 :(得分:0)
更新 filesystems.php
'public' => [
'driver' => 'local',
'root' => public_path() . '/uploads',// upload file in public dir
'url' => env('APP_URL').'/uploads', // help to get Storage::url()
'visibility' => 'public',
],
将其放在filesystems.php
中,则所有文件将保存在public/uploads
文件夹中
并获取网址,此功能Storage::disk('public')->url($dbImageUrl);
将起作用
如果您无法创建符号链接,则用于cpanel