问题描述:通过url访问时,Ubuntu 20.04上的Laravel 7在storage/protected/images目录中使用NGINX - Images时返回404。
回答: 这个问题可能是由于NGINX配置不正确或Laravel的路由问题导致的。下面我将分别介绍可能的解决方案。
location /storage/protected/images {
alias /path/to/laravel/storage/protected/images;
try_files $uri $uri/ /index.php?$query_string;
}
请将/path/to/laravel
替换为您实际的Laravel项目路径。然后重新加载NGINX配置文件:
sudo service nginx reload
routes/web.php
文件中添加以下路由: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项目中已经引入了File
和Response
类:
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Response;
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据您的实际需求和预算来决定。
希望以上解决方案对您有帮助!如果您有任何其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云