我在项目中为图像创建了新磁盘,并且我想在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'),
],
],
答案 0 :(得分:0)
您的问题不清楚。
如果要缩短img网址:
您可以将符号链接从public/userImage
到storage/app/public/images/userImage
。
在路由文件夹中添加到console.php。
Artisan::command('link', function(){
$this->laravel->make('files')->link(
storage_path('app/public/images/userImage'), public_path('userImage')
);
});
然后是控制台命令:
php artisan link
如果您想使用较短的代码(刀片中的路径):
您可以创建自己的帮助器功能。
创建文件app / Helpers / helpers.php
function image($path){
$path = trim($path, '/');
return asset('storage/images/' . $path);
}
将其添加到作曲家的自动加载中
"autoload": {
"files": [
"app/Helpers/helpers.php"
],
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
在刀片中使用它:
{{ image('userImage/standard/default.png') }}