основной веб-API-интерфейс asp.net с использованием расширения файла с Angular SPA - PullRequest
0 голосов
/ 10 января 2019

Я использую asp.net core 2.1, проект, созданный с помощью шаблона web api angular. Пока все работает нормально, но Я пытаюсь построить маршрут 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-маршрут не определен как угловой маршрут.

Другие маршруты API (включая другие действия в этом же контроллере, которые просто возвращают обычные данные JSON) работают нормально. Когда расширение файла находится в маршруте, оно возвращается к индексному файлу 304.

Я понимаю, что это должно быть какой-то проблемой с обработкой статических файлов и обработкой путей с расширениями файлов, , но я не могу точно определить основную причину или исправить . Я исчерпал Google - все, что я могу найти, не включает в себя ядро ​​dotnet, просто ванильные ASP.NET MVC вещи.

Большая часть того, что я пробовал до сих пор, взята из здесь .

ядро ​​dot net, похоже, не соответствует ни одному из правил, изложенных в TransferRequestHandler записях в web.config. Ничто из того, что я добавил, не имело значения.

Я немного растерялся, и я удивлен, что не могу найти что-либо, связанное с запуском ядра asp.net в качестве бэк-энда, который обслуживает файлы для загрузки ...

...