使用带有Angular SPA的文件扩展名的asp.net核心Web API路由

时间:2019-01-10 19:41:39

标签: angular .net-core asp.net-core-webapi

我使用的是asp.net core 2.1,该项目是通过网络api角度模板创建的。到目前为止,一切工作正常,但是我正在尝试构建一个api路由,该路由本质上是AWS S3存储桶的“代理”。

实际上,执行S3操作没有问题,但是我希望自己的路线像这样:     /api/attachments/path/to/file.txt

这将映射到类似以下的控制器动作:


    [HttpGet("{folderName}/{subfolder}/{*filePath}")]
    public async Task<IActionResult> DownloadFile(string folderName, string subfolder, string filePath) 
    {
      //...
    }

问题是:
->当URL路径包括文件扩展名时,我的应用程序将重定向到SPA索引文件,然后由于我的/ api路由未定义为Angular路由而崩溃。

其他api路由(包括该控制器中仅返回常规JSON数据的其他操作)也可以正常工作。当文件扩展名在路由中时,它会返回到索引文件304。

  

我了解这与静态文件的处理方式以及带有文件扩展名的路径的处理方式有关,但我似乎无法查明根本原因或解决方法。我已经用尽了google,我能找到的所有内容都不包括dotnet核心,而只是普通的ASP.NET MVC。

到目前为止,我尝试过的大部分内容都来自here

dot net core似乎没有遵循web.config的TransferRequestHandler条目中列出的任何规则。我没有添加任何东西。

我有点迷茫,我感到惊讶的是我找不到与运行asp.net核心有关的任何东西作为后端来提供文件下载...

0 个答案:

没有答案