les*_*gar 3 php laravel laravel-5
在我的Laravel 5.1应用程序中,我将图像存储在storage/app/uploads文件夹中.
我的local磁盘:
<?php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app/uploads'),
],
// other configuration...
?>
Run Code Online (Sandbox Code Playgroud)
事实是,我无法想出在上传后使用图像文件的方法,例如作为<img>标记的来源.基本上,我需要检索图像的有效路径,因此可以在页面上使用它.
对于部署,我使用Envoyer提供解决方案.根据Envoyer文档:
存储用户上载的文件时,如果使用的是Laravel ,则应将它们存储在应用程序的存储目录中.然后,您可以使用Envoyer的"管理链接文件夹"功能来创建从公共目录到存储目录的符号链接.可以在项目的"部署挂钩"选项卡上找到"管理链接文件夹"按钮.
..这很清楚.
但我怎么"链接"的存储和公共文件夹在我的本地开发环境?Laravel是否提供了一种方法,或者我是否需要手动在我的环境中创建符号链接?
有几个选择:
创建一个输出文件的控制器
class AssetController {
public function show($id) {
$file = File::findOrFail($id);
return Response::make(Storage::get($file->storage_key), 200, ['Content-Type' => $file->mime_type]);
}
}
Run Code Online (Sandbox Code Playgroud)创建符号链接public/assets => storage/app /
将文件上传到公共/资产而不是存储/应用
使用Web服务器上的重写来提供存储/应用程序文件夹中的文件 - 如何执行此操作取决于您使用的是哪个Web服务器.对于nginx,您可以使用类似的东西
rewrite ^/v1/assets/(\d+) /../storage/app/$1;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2749 次 |
| 最近记录: |