首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过url访问时,Ubuntu 20.04上的Laravel 7在storage/protected/images目录中使用NGINX - Images时返回404

问题描述:通过url访问时,Ubuntu 20.04上的Laravel 7在storage/protected/images目录中使用NGINX - Images时返回404。

回答: 这个问题可能是由于NGINX配置不正确或Laravel的路由问题导致的。下面我将分别介绍可能的解决方案。

  1. NGINX配置问题: 首先,确保NGINX已正确配置以允许访问storage/protected/images目录。在NGINX的配置文件中,通常是位于/etc/nginx/sites-available/目录下的默认配置文件中,添加以下配置:
代码语言:txt
复制
location /storage/protected/images {
    alias /path/to/laravel/storage/protected/images;
    try_files $uri $uri/ /index.php?$query_string;
}

请将/path/to/laravel替换为您实际的Laravel项目路径。然后重新加载NGINX配置文件:

代码语言:txt
复制
sudo service nginx reload
  1. Laravel路由问题: 确保Laravel的路由配置正确,可以尝试在routes/web.php文件中添加以下路由:
代码语言:txt
复制
Route::get('storage/protected/images/{filename}', function ($filename) {
    $path = storage_path('protected/images/' . $filename);
    if (!File::exists($path)) {
        abort(404);
    }
    $file = File::get($path);
    $type = File::mimeType($path);
    $response = Response::make($file, 200);
    $response->header("Content-Type", $type);
    return $response;
})->where('filename', '.*');

这将创建一个路由,当访问storage/protected/images/{filename}时,将返回对应的图片文件。确保您的Laravel项目中已经引入了FileResponse类:

代码语言:txt
复制
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Response;
  1. 腾讯云相关产品推荐: 腾讯云提供了丰富的云计算产品,以下是一些与问题相关的产品推荐:
  • 对象存储(COS):腾讯云对象存储(COS)是一种高可用、高可靠、强安全的云存储服务,适用于存储和处理大规模非结构化数据。您可以将图片文件上传到COS,并通过COS的URL进行访问。了解更多:腾讯云对象存储(COS)
  • 云服务器(CVM):腾讯云云服务器(CVM)是一种可弹性扩展的计算服务,提供了多种规格的云服务器实例供您选择。您可以在CVM上部署Ubuntu 20.04和NGINX,并将Laravel项目部署在CVM上。了解更多:腾讯云云服务器(CVM)

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据您的实际需求和预算来决定。

希望以上解决方案对您有帮助!如果您有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券