изображения некорректно отображаются в Интернете, даже если они хорошо работают локально с использованием laravel 6

#php #laravel #helper

#php #laravel #помощник

Вопрос:

я создал веб-сайт laravel , сайт работает локально, он отображает изображение, если оно существует, и отображает not-found.jpg изображение, если изображение не существует, и когда я размещаю его в Интернете [aswaktinghir.com ] [1], всегда отображать not-found.jpg изображение, productImage функция всегда переходит ко 2-му условию изображения not-found.jpg , даже если есть изображение.

helpers.php

    function productImage($path) 
{
    return $path amp;amp; file_exists('storage/'.$path) ? asset('storage/'.$path) : asset('img/not-found.jpg');
}
 

landing-page.blade.php

  @foreach($annonces as $annonce) 
                        <a href="{{ url('annonces/'.$annonce->id) }}"> 
                        <div class="col-md-3 col-xs-12">
                            <div class="blog-item this-animate" data-animate="fadeInUp">
                                <div class="blog-media">
                                    <img src="{{ asset(productImage($annonce->image) )}}" class="img-responsive" style="width: 240px;height: 240px" /> 
                                </div>
                                <div class="blog-data">
                                    <h5>{{ $annonce->details }}</h5>
                                    <span class="blog-date">{{ $annonce->created_at }} / 0 Comments</span>
                                    <p>{{ substr($annonce->description, 0, 31) }}...</p>
                                </div>
                            </div>
                        </div>
                        </a>
                        @endforeach 
                        </div> 
 

Комментарии:

1. вы создали символическую ссылку для хранения?

2. @TipuSultanEiko да, я создаю символическую ссылку, я редактирую свою функцию, чтобы ` return $path amp;amp; file_exists(‘storage /’.$path) ? asset(‘storage /’. $path): asset(‘storage /’. $path);` , вы можете снова увидеть ссылку на мой сайт

3. вы проверили пути к серверу? существует ли этот файл?

4. @TipuSultanEiko некоторые изображения существуют, а другие нет

Ответ №1:

Если вы используете Git для передачи файлов на свой рабочий сервер, обязательно загляните в свой файл .gitignore в корневом каталоге. Убедитесь, что вы не исключаете папки /store или /public/ store .

Комментарии:

1. нет, я использую filezilla, создаю символическую ссылку, редактирую свою функцию, чтобы `return $path amp;amp; file_exists(‘storage /’.$path)? asset(‘storage /’.$path): asset(‘storage /’. $path);` , вы можете снова увидеть мой сайт как

Ответ №2:

вы пробовали

 chmod -R 755 [path to storage]
chown -R www-data:www-data [path to storage]
 

Комментарии:

1. когда я запускаю эту команду, она выдает ошибку: The stream or file "/var/www/clients/client1/web1/web/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied пожалуйста, помогите

2. вам нужно добавить «sudo» перед каждой командой