Изображение в хранилище/приложении/общедоступном возвращает 404 при попытке получить его в index.blade.php

Мне нужно изображение в моей индексной колонке, но я никогда не делал этого в Laravel. Я продолжаю получать 404 обратно, когда пытаюсь.

Я несколько раз пытался изменить маршрут в функции assets(). Кажется, ничего не работает.

                <img src = "{{ asset('public/storage/img/wvzonline_logo.png') }}" alt = "Het logo van WVZ.Online">

Я тоже провел линию здесь.

php artisan storage:link

На данный момент я получаю 404 не найден. То, что я хочу, это отображаемое изображение, конечно.

актив () относится к общей папке, а не к хранилищу. в вашем случае вы можете получить как storage_path('app/public/img/wvzonline_logo.png');

Prince Kumar Dwivedi 01.05.2019 11:53

Вы пытались получить доступ к изображению в http://localhost/public/storage/imgwvzonline_logo.png? Введя в адресную строку

Cloud Soh Jun Fu 01.05.2019 12:00

@PrinceKumarDwivedi Возвращает следующее: Не разрешено загружать локальный ресурс: файл:///C:/Users/Scott/Desktop/School/Jaar3/Stage/PVB/B1-K2/‌​storage/app/public/i‌​ мг/wvzonline_logo.pn‌​g

Scott van Duin 01.05.2019 12:04

@CloudSohJunFu Пустая страница с надписью «Недоступно»

Scott van Duin 01.05.2019 12:06

Может http://localhost/storage/imgwvzonline_logo.png или http://localhost/imgwvzonline_logo.png? Проверьте свой config/filesystems.php, чтобы увидеть, где ваша public карта диска.

Cloud Soh Jun Fu 01.05.2019 12:08

Прежде всего, проверьте, существует ли wvzonline_logo.png в папке public/storage/img. Если да, попробуйте -> {{ asset('/storage/img/wvzonline_logo.png') }}

Salvatore 01.05.2019 12:10

@thebrownkid Он находится в папке storage/app/public/img. У меня только что был этот маршрут из другой статьи SO. Но ваш фрагмент работает. Если вы опубликуете это как ответ, я могу принять это.

Scott van Duin 01.05.2019 12:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
7
2 299
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Прежде всего, проверьте, существует ли wvzonline_logo.png в папке public/storage/img.

Если да, попробуйте -> {{ asset('/storage/img/wvzonline_logo.png') }}

As the symlink is created successfully you can use the asset() to access the images in the storage folder.

Вам не нужно ставить префикс public в пути к ресурсу, если вы это сделаете, вы получите доступ к http://localhost/public/storage/image.png.

Ваш http://localhost уже находится в папке public, поэтому вам нужно получить доступ к storage только через asset('storage/image.png'). Или вы можете использовать Storage::url('image.png'), чтобы получить путь. Однако обратите внимание, что на URL влияет APP_URL в вашем .env.

app
config
database
public -|
  index.php
  storage -|
    image.png
storage
  app
    public
      image.png

В config/filesystems.php указан путь к вашему хранилищу и URL-адрес для доступа к нему. Клиент не может просматривать изображение, если вы не поместите его в общую папку (через php artisan storage:link, что символизирует вашу папку storage с public/storage).

Другие вопросы по теме