Я довольно новичок в Laravel и работаю над проектом, в котором я пытаюсь выяснить проблему, с которой сталкиваюсь, пытаясь сохранить только изображения в storage/app/images
и его подкаталогах. Я думал, что сделал это в соответствии с документацией , и он работает, как и ожидалось, в моей локальной среде, работающей под управлением Valet. Однако, когда я продвигаю его на своем веб-сервере, запущенные изображения Nginx и php-fpm не отображаются, и если я нажимаю на ссылку, я получаю ошибку 404.
Вот раздел дисков файла systemystem.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
и скопировать туда изображения, которые не идеальны, поскольку они дублируют файлы и работа.
Есть идеи, что я делаю не так?