TL; DR
Я успешно загрузил изображение с помощью ресурса Laravel Nova. Я могу видеть имя файла, когда я ssh на моем сервере, и я вижу путь к изображению в соответствующей записи в моей промежуточной базе данных. Однако Нова говорит: «Это изображение не может быть найдено». Он также отображает неработающую ссылку на изображение на странице, где я передаю изображение. Как заставить изображение отображаться на моем промежуточном ресурсе Nova и моем промежуточном сайте?
Дополнительная информация
Я развернул промежуточный сайт с помощью Laravel Forge. Этот сайт использует Laravel Nova для загрузки изображений и т. Д. Моя цель - загрузить эти изображения в каталог хранилища и получить к ним доступ из public/storage
, используя символическую ссылку для Документация файловой системы Laravel , на промежуточном сайте. (Я могу сделать это очень хорошо, если я запускаю свое приложение локально. Я вижу изображение в Nova и на своем локальном сайте.)
Когда я загружаю изображение, оно успешно загружается на мой сервер; Я могу увидеть файл, когда я ssh на моем сервере. Кроме того, он сохраняет путь к файлу в моей промежуточной базе данных: images/TheJournal/Topics/Testing/Test2.jpg.
Проблема в деталях
Когда я пытаюсь посмотреть файл из моей админ-панели Nova, я получаю: «Это изображение не найдено». Нажав на «Это изображение», я попадаю на пустую страницу со следующим URL в строке поиска: myDomainName/storage/images/TheJournal/Topics/Testing/Test2.jpg
. Опять же, если я захожу по ssh на свой сервер, я вижу, что файл действительно загружен на мой сервер. Кроме того, я получаю сообщение об ошибке 404 на странице, на которую загружаю изображение (см. Шаблон Vue.js ниже).
Шаблон Vue.js
Я пытаюсь загрузить изображение на интерфейс, используя Article.MainPic, который содержит следующий путь: "images / TheJournal / Topics / Testing / Test2.jpg". Я получаю ошибку 404, делающую это таким образом.
<img class="item" :alt="Article.Title" :src="'/storage/' + Article.MainPic">
filesystems.php
Я пытаюсь использовать 'public'
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL')."/storage",
'visibility' => 'public',
],
'Root' => [
'driver' => 'local',
'root' => public_path(),
'url' => env('APP_URL'),
'visibility' => 'public',
],
Article.php: Nova Resource
Это поле ресурса Nova, которое я использую.
Avatar::make("Square Pic", "MainPic")
->disk("public")
->path("/images/TheJournal/Topics/Testing")
->storeAs(function (Request $request) { return $request->MainPic->getClientOriginalName(); })
->deletable()
->hideWhenCreating(),
Gitignore
Это в настоящее время в моем файле gitignore. Может быть, это как-то связано с проблемой? Я так не думаю, потому что я вижу каталог хранилища в / public / storage /, когда захожу по ssh на свой сервер. Когда я пытаюсь изменить каталог на / public / storage /, он говорит: -bash: cd: storage: No such file or directory
/public/hot
/public/storage
Вещи, которые я пробовал:
Удаление моего public/storage/
и воссоздание его с помощью php artisan storage:link
Замена disk("public")
на disk("Root")
в моем Article.php Nova
Ресурс. Это сохранило изображение в моей общедоступной директории / images
storage/app/images/
. Это позволило моей панели администратора Nova и веб-странице
для отображения правильного изображения. Нет ошибки 404.
Замена '/storage/'
на '/'
на моем шаблоне Vue.js
Кто-нибудь знает, что может происходить?