我正在开发一个 ASP.NET Core 8 MVC 项目,我需要为所有文件和子文件夹设置重定向路由到特定文件夹。
这对于像
/images/foo.png
这样的网址非常有用,但不适用于 /images/sub1/foo.png
和 /images/sub1/sub2/foo.png
。
[Route("/images/{restOfPath}")]
我需要一条路线来捕获
images
文件夹中的所有内容。
谢谢大家
您可以使用“catch-all”参数
**
来实现此目的。这是一个示例。
private readonly IWebHostEnvironment _env;
public SampleController(IWebHostEnvironment env)
{
_env = env;
}
[HttpGet("/Images/{**restOfPath}")]
public IActionResult Index(string restOfPath)
{
var imagesRoot = Path.Combine(_env.ContentRootPath, "images", restOfPath);
var contentType = "image/png";
return PhysicalFile(imagesRoot, contentType);
}