Я работаю с проектом, который использует 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?