【问题标题】:Creating shorter link for image folder为图像文件夹创建较短的链接
【发布时间】:2019-05-29 13:45:22
【问题描述】:

我在我的项目中为图像创建了新磁盘,并且我想使用我在 Blade.php 中的视图中添加到 userImage 磁盘的 URL。

磁盘在我的控制器中完美运行,我用它来检测文件夹路径是否存在,如果不存在,我正在创建一个:

if (!Storage::disk('userImage')->has('standard')) {
     Storage::disk('userImage')->makeDirectory('standard');
}

但我也想在我的 Blade.php 页面视图中使用它,现在我正在使用:

(C:\xampp\htdocs\rps\public\storage\images\userImage\standard\default.png)

src="{{asset('storage/images/userImage/standard/default.png')}}"

上面的代码完美运行,它显示了图像,但我想将其缩短为:

src="{{asset('userImage/standard/default.png')}}"

我希望它能够通过我的 userImage 磁盘的工作方式来工作,但事实并非如此。有人知道如何解决这个问题吗?

    'disks' => [

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

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

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

        'userImage' => [
            'driver' => 'local',
            'root' => storage_path('app/public/images/userImage'),
            'url' => env('APP_URL').'/userImage',
            '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'),
        ],

    ],

【问题讨论】:

标签: php laravel


【解决方案1】:

你的问题不清楚。

如果你想要更短的img url:

您可以将符号链接从public/userImagestorage/app/public/images/userImage

  1. 添加到路由文件夹中的 console.php。

    Artisan::command('link', function(){
        $this->laravel->make('files')->link(
            storage_path('app/public/images/userImage'), public_path('userImage')
        );
    });
    
  2. 然后是控制台命令:

    php artisan link
    

如果您想要更短的代码(刀片中的路径):

您可以创建自己的辅助函数。

  1. 创建文件 app/Helpers/helpers.php

    function image($path){
        $path = trim($path, '/');
        return asset('storage/images/' . $path);
    }
    
  2. 将其添加到作曲家的自动加载中

    "autoload": {
         "files": [
             "app/Helpers/helpers.php"
        ],
        "psr-4": {
             "App\\": "app/"
        },
        "classmap": [
             "database/seeds",
             "database/factories"
        ]
    },
    
  3. 在刀片中使用它:

    {{ image('userImage/standard/default.png') }}
    

【讨论】:

  • 我知道它是如何工作的,但是当我在刀片中调用该函数时,我得到:Call to undefined function image() 我是否需要刷新我的作曲家或其他东西才能使其工作? composer update 没有帮助我@IndianCoding
猜你喜欢
  • 2018-03-26
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多