Laravel镜像没有在服务器上显示,在我的本地机器上运行良好

z8dt9xmd  于 2023-11-20  发布在  其他
关注(0)|答案(4)|浏览(99)

在我的本地机器上的项目工作文件,但当我上传到我的服务器上,然后所有的图像都不显示,和NotFoundHttpException错误时,我击中完整的图像路径浏览器。
我的项目路径为

/public_html/offlinemall/public

字符串
下面是我的文件系统. 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_KEY'),
        'secret' => env('AWS_SECRET'),
        'region' => env('AWS_REGION'),
        'bucket' => env('AWS_BUCKET'),
    ],
    'featured' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

],


以及我如何获得图像

<img style="height: 480px" src="storage/{{ $ad->avatar }}">


在inspect我得到完整的路径,但当我击中URL,然后我得到NotFoundHttpException错误。

http://compare.theofflinemall.com/storage/featured_image/qzHWpQeSfKjZ6DOS59ROyYboJ1GCvVi6NNVfLtVV.jpeg

jhdbpxl9

jhdbpxl91#

基本上它有符号问题。可能你已经使用了存储目录来存储图像。如果你使用它,你需要通过php artisan storage:link创建一个符号链接。它会创建一个符号目录到你本地项目的公共目录中,并带有存储名称。当你在服务器上上传项目时,符号目录不会与你的项目一起上传。所以,合理的浏览器不会得到路径,不显示图像。在这些Angular 有很多解决方案:

**解决方案一:**ssh key访问,如果你有你的服务器的ssh key访问,使用ssh key登录你的服务器,进入你的项目目录,运行命令php artisan storage:link它会创建符号目录到你的项目。
**方案二:**在服务器端创建cron job。
**解决方案三:**通过执行php脚本创建符号链接,请通过此链接cron job and php file execution
**解决方案四:**通过在config/filesystem.php中更改镜像路径的根目录,请通过此url laracast.com

xqnpmsa8

xqnpmsa82#

您的服务器无法将storage定位为路径,因为它使用public_path运行

php artisan storage:link

字符串
应该可以的。另外,

{{ asset('storage/'.$ad->avatar) }}

olmpazwi

olmpazwi3#

您可以将图像标签更改为:
1.第一个月

  1. <img src="storage/app/public/{{$ad->avatar) }}" />
  2. <img src="<?php echo asset("storage/app/public/$ad->avatar")?>"></img>
gg58donl

gg58donl4#

如果你已经做了所有这些,试试这个:
检查你的.env文件和APP_URL值:它应该是https://[yourwebsite.com] -有些人忘记从默认的本地主机更改它或提供不正确的URL与额外的文件夹/子域

相关问题