Laravel 找不到 smlink
Laravel smlink not found
我将我的 laravel 网站上传到共享主机“。一切正常,除了我无法检索存储在 storage/public 文件夹中的图像。我 运行
"php artisan storage:link"
但它说找不到。我也试过
rm storage
但是收到消息 rm: 无法删除。是目录
php artisan storage:link output from ssh command
请注意,我不是在解决原始答案,因为这听起来不太可能。这是替代解决方案。
解决方案
在您的 config/filesystems.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'),
'endpoint' => env('AWS_ENDPOINT'),
],
],
不使用 OS symlinks 将 link 您的 public 磁盘到 public 目录,将 disks['public']['path']
更改为public 您选择的路径。例如,
'disks' => [
/** -- skipped code **/
'public' => [
'driver' => 'local',
'root' => __DIR__ . '../public/images/`,
'url' => env('APP_URL').'/images',
'visibility' => 'public',
],
/** -- skipped code **/
],
另一个解决方案
你完全可以使用S3存储。这会将您连接到您可以使用的 AWS 存储桶。
个人轶事
Laravel 共享主机可能会很棘手。我会尽快过渡。我使用 Laravel Forge 部署服务器和 Digital Ocean 或 AWS 进行托管。
我将我的 laravel 网站上传到共享主机“。一切正常,除了我无法检索存储在 storage/public 文件夹中的图像。我 运行
"php artisan storage:link"
但它说找不到。我也试过
rm storage
但是收到消息 rm: 无法删除。是目录 php artisan storage:link output from ssh command
请注意,我不是在解决原始答案,因为这听起来不太可能。这是替代解决方案。
解决方案
在您的 config/filesystems.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'),
'endpoint' => env('AWS_ENDPOINT'),
],
],
不使用 OS symlinks 将 link 您的 public 磁盘到 public 目录,将 disks['public']['path']
更改为public 您选择的路径。例如,
'disks' => [
/** -- skipped code **/
'public' => [
'driver' => 'local',
'root' => __DIR__ . '../public/images/`,
'url' => env('APP_URL').'/images',
'visibility' => 'public',
],
/** -- skipped code **/
],
另一个解决方案
你完全可以使用S3存储。这会将您连接到您可以使用的 AWS 存储桶。
个人轶事
Laravel 共享主机可能会很棘手。我会尽快过渡。我使用 Laravel Forge 部署服务器和 Digital Ocean 或 AWS 进行托管。