我的代码在 localhost 开发中工作
<img class="img-fluid rounded-circle" src="{{ url('image?type=user&file='.Auth::user()->picture_file.'&mime='.Auth::user()->picture_mime) }}" alt="Image Description">
将访问imageController与get使用这个链接方法image?type=user&file=USER000053.png&mime=image/png
class ImageController extends BaseController
{
public function get(Request $request){
$file=Storage::disk($request->type)->get($request->file);
return response($file,200)->header('content-Type',$request->mime);
}
}
在我的filesystem.php配置文件下面
'user' => [
'driver' => 'local',
'root' => storage_path('app/user'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
上面的代码在本地主机上运行良好。但是当我们尝试推送到生产服务器(centos os)时,该代码将不起作用。它只是返回一个损坏图像。
我们已经尝试过
[检查] 确保存储和临时可访问。chmod 755. 即使我们尝试过 777
[检查]chown到用户 apache.apache
[检查] 设置 selinux 许可模式
[检查] 我们确保该文件已经存在
$file_exists = Storage::disk($request->type)->exists($request->file);
上面的代码返回 true
[检查] 在下面尝试此代码
$response = Response::make($file, 200);
$response->header('Content-Type', $request->mime);
return $response;
还是不行
试图制作符号链接
php artisan storage:link
它在public文件夹上创建符号链接,但仍然无法正常工作
尝试下载但仍然无法正常工作
return response()->download(storage_path('app/' . $request->type . "/" . $request->file));
我在 GCP 的 Centos 7 环境中运行。任何想法都会帮助我。谢谢
翻翻过去那场雪
海绵宝宝撒
相关分类