我是Laravel的新手,正在从事一个项目,试图解决仅在storage/app/images
及其子目录中保留图像的问题。我以为我已经按照documentation完成了此操作,并且它在Valet下运行的本地环境中按预期工作。但是,当我将其升级到我的Web服务器时,没有显示正在运行的Nginx和php-fpm图像,如果单击链接,则会出现404错误。
这是filesystem.php的磁盘部分
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'images' => [
'driver' => 'local',
'root' => storage_path('app/public/images'),
'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'),
],
'carousel' => [
'driver' => 'local',
'root' => storage_path('app/public/images/carousel'),
'visibility' => 'public',
],
],
以下是视图中的相关代码:
@php
/* Grab a list of all images to dynamically display */
$files = Storage::disk('carousel')->files();
@endphp
<div class="flex-center position-ref">
<div class="content">
<div class="empty">
</div>
<div class="box-left">
@include('partials/obit')
</div>
<!-- Carousel Start -->
<div class="box-right">
<div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel" data-interval="5000" data-pause="hover">
<div class="carousel-inner">
@for($i=0; $i < count($files); $i++ )
@if ($i == 0)
<div class="carousel-item active">
@else
<div class="carousel-item">
@endif
<img src="{{asset('images/carousel') . '/' . $files[$i] }}">
</div>
@endfor
</div>
当我在页面上查看源代码时
<div class="carousel-item active">
<img src="http://www.example.com/images/carousel/01.jpg">
</div>
class="carousel-item">
<img src="http://www.example.com/images/carousel/03.JPG">
,但是单击那些链接会得到404。我要使其在生产环境中工作的唯一方法是在/images/carousel/
下创建一个app/public
目录,并在其中复制小于非常理想,因为它可以复制文件和工作。
知道我在做什么错吗?