Laravel Я не могу связать хранилище на моем сервере (Производство) - PullRequest
1 голос
/ 03 мая 2020

Я использую laravel для веб-сайта, слайдер которого является динамическим c, можно добавить от администратора, для хранения я использую laravel хранилище

Когда я добавляю слайдер, изображение загружено в laravel/storage/app/public/settings/slider

Когда я пытаюсь выполнить команду php artisan storage:link, я получаю следующую ошибку:

ErrorException  : symlink(): No such file or directory

  at /home/invplatform/investors/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:263
    259|      */
    260|     public function link($target, $link)
    261|     {
    262|         if (! windows_os()) {
  > 263|             return symlink($target, $link);
    264|         }
    265|
    266|         $mode = $this->isDirectory($target) ? 'J' : 'H';
    267|

  Exception trace:

  1   symlink("/home/invplatform/investors/storage/app/public", "/home/invplatform/investors/public/storage")
      /home/invplatform/investors/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:263

  2   Illuminate\Filesystem\Filesystem::link("/home/invplatform/investors/storage/app/public", "/home/invplatform/investors/public/storage")
      /home/invplatform/investors/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php:35

  Please use the argument -v to see more details.

Мой config/filesystem.php код


    'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL') . '/storage',
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
        ],

    ],

Я использую код удара для хранения изображения:

if($request->has('image'))
        {
            $image_path=request()->image->hashName();
            $request->file('image')->store('/settings/slider');

            $slider->image='settings/slider/'.$image_path;
        }

Теперь, когда я добавляю изображение, оно загружается в laravel/storage/app/public/settings/slider, но не найдено в public_html/storage/settings/slider

У всех есть Любая идея об этом

1 Ответ

0 голосов
/ 03 мая 2020

Возможно, у вас неправильная структура каталогов. (Я думаю, что вы используете cpanel). Таким образом, ваша папка publi c и папка storage должны находиться в одном каталоге для php artisan storage:link. Если они должны быть в другом каталоге, пожалуйста, создайте символическую ссылку вручную.

ln -s {source-filename} {symbolic-filename}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...