Laravel - все пути изображения повреждены и не могут быть отображены - PullRequest
0 голосов
/ 28 апреля 2018

Я работаю с проектом, который использует Laravel (api) и Angular 5 (front-end) на GoDaddy. Чтобы безопасно использовать Laravel на GoDaddy, мне пришлось поместить все файлы Laravel в один каталог из public_html и все файлы Angular в public_html. Чтобы это работало правильно, мне пришлось переместить общую папку Laravel в public_html и указать абсолютный путь к файлу Laravel. Все работает, поэтому я знаю, что направляюсь в правильном направлении.

Путь Ларавела - /home/website/laravel/

Публичный путь - /home/website/public_html/

Единственная проблема, с которой я столкнулся, - это попытка подать изображения для галереи изображений. Я храню все изображения в каталоге storage Laravel и сохраняю пути к изображениям в БД. Когда пришло время загрузить все изображения через Angular, я вызываю API, и он возвращает все имена изображений в коллекции, и Angular добавляет путь. Вот пример - https://website.com/storage/media/events/1/m_22721a76-8f0a-4ce2-97a5-e5ac169127a5.jpg.

Поскольку мои изображения хранятся в одном каталоге от public_html, они не могут быть доступны и повреждены. Моя первая мысль - сохранить все изображения в каталоге в public_html, но я не уверен, смогу ли я изменить конфигурацию filesystems Laravel, чтобы разрешить это. Я также думал о попытке использовать .htaccess для обнаружения определенного пути и перенаправления, но я не мог заставить его работать. Я чувствую, что использование Laravel filesystems - это путь, но я не смог заставить его работать, вот что я придумал:

filesystems.php

'production' => [
    'driver' => 'local',
    'root' => storage_path('/home/website/public_html/storage/media/'),
    'url' => env('APP_URL').'/storage',
    'visibility' => 'public',
],

ImageGalleryController.php

if(App::environment('local'))
{
    Storage::disk('local')->put('events' . '/' . $id . '/t_' . $path, (string) $thumb->encode());
}
else if(App::environment('test')) 
{
    Storage::disk('test')->put('events' . '/' . $id . '/t_' . $path, (string) $thumb->encode());
}
else {
    Storage::disk('production')->put('events' . '/' . $id . '/t_' . $path, (string) $thumb->encode());
} 

С моей текущей настройкой файла, есть какие-нибудь идеи, как я могу отображать изображения из каталога хранилища Laravel?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...