如何从 Laravel Homestead 中的存储文件夹访问图像(符号链接问题)?
How to access image from storage folder in Laravel Homestead (Symbolic Links problem)?
我想知道如何访问存储的文件,在本例中是个人资料图片。
理想情况下,我想将它们保存在 "profilepictures" 文件夹中。可以在 public/profilepictures 目录中使用符号 link 到 storage/app/public/profilepictures
我的代码现在如下所示:
控制器:
//store our image in the profilepics directory
$profilepicpath = request('profilepic')->store('profilepictures', 'public');
//actually write all the data to the database
auth()->user()->profile()->create([
'profilepic' => $profilepicpath,
'dateofbirth' => $data['dateofbirth'],
'about' => $data['about'],
'zipcode' => $data['zipcode'],
'state' => $data['state']
]);
查看:
<div class="data" style="visibility: hidden;">
{{$profile = App\profile::find(Auth::user()->id)}}
</div>
<div class="profile-wrapper">
<div class="profile-grid">
<div class="profilepic">
<img class="profilepic-image" src={{asset($profile['profilepic'])}}>
</div>
Filesystems.php 在配置中:
/*
|--------------------------------------------------------------------------
| Symbolic Links
|--------------------------------------------------------------------------
|
| Here you may configure the symbolic links that will be created when the
| `storage:link` Artisan command is executed. The array keys should be
| the locations of the links and the values should be their targets.
|
*/
'links' => [
//public_path('storage') => storage_path('app/public'),
public_path('profilepictures') => storage_path('app/public/profilepictures'),
],
有人知道为什么这行不通吗?
下面我可以确认有一个符号 link,它似乎指向正确的位置:
如果我从它应该显示在视图中的位置复制图像位置,我会得到以下之一:
或
link 都不起作用,如果我尝试在浏览器中访问它,我只会收到错误 404。虽然根据查看目录结构,我认为第一个应该起作用。
有人有什么建议吗?
我 运行 laravel 在安装在 ubuntu 物理桌面上的 virtualbox vm 上的宅基地上,到目前为止,我已经为此尝试了许多不同的配置,包括将 .htaccess 文件编辑为没有成功。
好的,所以在这个特定的例子中,唯一的问题是当我第一次 运行 php artisan storage:link 命令时,我 运行 它来自我的主机而不是我的 VM... 因为我使用的是 Homestead (vm),所以我需要做的就是 vag运行t 销毁,然后重新创建 VM 和 运行 php artisan storage:link 来自 VM 终端的命令并且运行良好。
我想知道如何访问存储的文件,在本例中是个人资料图片。
理想情况下,我想将它们保存在 "profilepictures" 文件夹中。可以在 public/profilepictures 目录中使用符号 link 到 storage/app/public/profilepictures
我的代码现在如下所示:
控制器:
//store our image in the profilepics directory
$profilepicpath = request('profilepic')->store('profilepictures', 'public');
//actually write all the data to the database
auth()->user()->profile()->create([
'profilepic' => $profilepicpath,
'dateofbirth' => $data['dateofbirth'],
'about' => $data['about'],
'zipcode' => $data['zipcode'],
'state' => $data['state']
]);
查看:
<div class="data" style="visibility: hidden;">
{{$profile = App\profile::find(Auth::user()->id)}}
</div>
<div class="profile-wrapper">
<div class="profile-grid">
<div class="profilepic">
<img class="profilepic-image" src={{asset($profile['profilepic'])}}>
</div>
Filesystems.php 在配置中:
/*
|--------------------------------------------------------------------------
| Symbolic Links
|--------------------------------------------------------------------------
|
| Here you may configure the symbolic links that will be created when the
| `storage:link` Artisan command is executed. The array keys should be
| the locations of the links and the values should be their targets.
|
*/
'links' => [
//public_path('storage') => storage_path('app/public'),
public_path('profilepictures') => storage_path('app/public/profilepictures'),
],
有人知道为什么这行不通吗?
下面我可以确认有一个符号 link,它似乎指向正确的位置:
如果我从它应该显示在视图中的位置复制图像位置,我会得到以下之一:
或
link 都不起作用,如果我尝试在浏览器中访问它,我只会收到错误 404。虽然根据查看目录结构,我认为第一个应该起作用。
有人有什么建议吗?
我 运行 laravel 在安装在 ubuntu 物理桌面上的 virtualbox vm 上的宅基地上,到目前为止,我已经为此尝试了许多不同的配置,包括将 .htaccess 文件编辑为没有成功。
好的,所以在这个特定的例子中,唯一的问题是当我第一次 运行 php artisan storage:link 命令时,我 运行 它来自我的主机而不是我的 VM... 因为我使用的是 Homestead (vm),所以我需要做的就是 vag运行t 销毁,然后重新创建 VM 和 运行 php artisan storage:link 来自 VM 终端的命令并且运行良好。