我已经在共享主机上部署了laravel项目,并尝试了一些项目功能,其中之一是上传图像。该图像已成功上传到我的存储文件夹中,但是当我尝试查看该图像时,控制台会在该上传的图像URL上为我提供404,例如URL:
http://member.gunabraham.com/storage/site/images/Site_Logo_1561217248.png
但是在我的本地服务器上,上传的图像正确显示在此URL上:
http://localhost:8000/storage/site/images/Site_Logo_1561217645.png
这是我的config/filesystems.php
:
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
],
],
还有我的HTML文件:
<a href="{{url('/home')}}" class="brand-logo amber-text center"><img src="{{asset('storage/site/images/'.$siteinfo->site_logo)}}" alt="" width="70" style="margin-top:15px;margin-bottom:15px;">
那么我该如何在共享主机上部署的laravel项目上做什么?感谢您的关注。
答案 0 :(得分:0)
您想尝试链接存储文件夹。
如果/ public / storage文件夹已经存在,请首先转到public文件夹并删除现有的存储文件夹,然后运行此命令
你尝试过吗?
试试这个命令php artisan storage:link
如果您在主机托管中没有命令面板,请创建一条运行命令的路线
Route::get('/command',function(){
Artisan::call('storage:link');
});
答案 1 :(得分:0)
您的文件正在存储路径而不是公共路径中上载。这里主要有两个选择: 1.将文件系统更改为公用路径。
In your /config/filesystems.php
'public' => [
'driver' => 'local',
'root' => public_path('app/public/'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
如果您使用没有控制台访问权限的共享主机,则选项1更好。
答案 2 :(得分:0)
通过从以下位置更改HTML文件中的图像源来解决:
storage/site/images/
至:
storage/app/public/site/images/
这是正确的选择吗?还是有解决此问题的另一种方法?