尚未配置文件提供程序来处理提供的文件

时间:2019-02-10 11:32:18

标签: .net-core asp.net-core-mvc asp.net-core-2.0 asp.net-core-2.1

我正在将单页应用程序与.Net core 2.2一起使用。我的startup.cs中有以下内容。

app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller}/{action=Index}/{id?}");

                routes.MapSpaFallbackRoute(
                    name: "spa - fallback",
                    defaults: new { controller = "CatchAll", action = "Index" });

            });

但是有关注

public class CatchAllController : Controller
    {
        public IActionResult Index()
        {
            return File("~/index.html", "text/html");
        }
    }

给我以下错误。

未配置文件提供程序来处理提供的文件

我在关注以下文章(一个区别。文章使用API​​项目。我参加过angular项目)。

https://www.richard-banks.org/2018/11/securing-vue-with-identityserver-part1.html

1 个答案:

答案 0 :(得分:0)

我只是在解决这个确切的问题。即使File()方法声称采用“虚拟路径”,但如果您遇到错误,我将永远无法获取它来加载文件。在阅读了许多不同的帖子后,这就是我最终拼凑而成的内容。

[Route("[controller]")]
public class DocumentationController : ControllerBase
{
    private readonly IHostingEnvironment _env;

    public DocumentationController(IHostingEnvironment env)
    {
        _env = env;
    }

    [HttpGet, Route("apiReference")]
    public IActionResult ApiReference()
    {
        var filePath = Path.Combine(_env.ContentRootPath,
            "Controllers/Documentation/My Document.pdf");
        return PhysicalFile(filePath, "application/pdf");
    }
}