хранилище: ссылка не работает на хостинге cPanel - PullRequest
0 голосов
/ 03 февраля 2020

Итак, я создал ссылку на хранилище с php artisan storage:link, и она прекрасно работает на localhost . Однако, когда я развертываю свой проект на виртуальном хостинге, он не показывает никаких изображений. Это моя структура каталогов хостинга:

- home2/username
:   + other hosting folders
:   - MyLaravelWebSite
:   :   + other laravel folders
:   :   - storage
:   :   :   - app
:   :   :   :   - public
:   :   :   :   :   -images
:   :   :   :   :   :   * some-image.jpg
:   :   :   :   * gitignore
:   :   :   + framework
:   :   :   + logs
:   - public_html
:   :   + assets
:   :   + storage // symlink
:   :   * index.php

Изображения загружаются совершенно нормально, но всякий раз, когда я пытаюсь их отобразить, они не отображаются, в то время как они отображаются абсолютно нормально на localhost. Я думаю, что символика c ссылка не работает. Как я могу заставить его работать?

Ps: у меня нет доступа к CLI на cPanel.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Вы можете использовать вспомогательные методы PHP и Laravel, чтобы сделать то же самое, просто запустите этот код один раз (например, добавьте его в свой контроллер и вызовите его один раз), чтобы создать ссылку на хранилище вручную:

use Illuminate\Support\Facades\File;

File::link(
    storage_path('app/public'), public_path('storage')
);
0 голосов
/ 03 февраля 2020

Обновление файловых систем. php

'public' => [
            'driver' => 'local',
            'root' => public_path() . '/uploads',// upload file in public dir
            'url' => env('APP_URL').'/uploads', // help to get Storage::url() 
            'visibility' => 'public',
        ],

поместите это в filesystems.php, тогда все ваши файлы будут сохранены в папке public/uploads и для получения URL этой функции Storage::disk('public')->url($dbImageUrl); будет работать

это для cpanel, если вы не можете создать символическую ссылку, тогда

...