.NET Core Web API 控制器的多个路由

Multiple routes to a .NET Core Web API controller

在 .NET Core Web 中 API 我编写了一个用于访问文件的控制器(用于授权目的)。

控制器只需要一个路径,读取路径中的文件和 returns 文件(图像)以浏览器可以显示的方式。

控制器看起来像

[HttpGet("{path}", Name = "GetFile")]
public IActionResult GetFile(string path)
{
  // read the file & content type
  return File(f, contentType);
}

如果我只使用文件名(文件是控制器),一切正常,例如

http://localhost:61261/api/v1/Files/test.png

问题是,当我使用子目录时,路由失败并显示 404,并且未调用控制器方法。例如

http://localhost:61261/api/v1/Files/subdirectory/test.png

我将如何进行路由,在第二个示例中路径变量将是 "subdirectory/test.png"?

编辑:我正在寻找某种通配符,因为子目录可以像文件一样来来去去 uploaded/downloaded。 并且不可能使用静态文件,因为它们是 public(无法使用 authentication/authorization 并且文件不在 wwwwroot 中。

从可能重复的问题中提取相关信息:

在路径前添加一个星号解决了问题

[HttpGet("{*path}", Name = "GetFile")]