【问题标题】:Is it possible to serve static files from outside the wwwroot folder?是否可以从 wwwroot 文件夹外部提供静态文件?
【发布时间】:2015-08-11 16:17:19
【问题描述】:

我有一个具有以下结构的 ASP.NET MVC 6 项目:

project/
  wwwroot/
  custom/
  project.json

我想将来自custom 的文件作为虚拟文件夹提供到http://localhost/custom 中,而无需在开发过程中复制它们。

是否可以在没有来自 IIS 的虚拟文件夹的情况下在 vNext 中执行此操作(例如,使用 StaticFile 中间件)?

【问题讨论】:

    标签: c# asp.net-core-mvc


    【解决方案1】:

    您可以在使用中间件时在选项对象上设置文件提供者。

    app.UseStaticFiles(new StaticFileOptions() {
        FileProvider = new PhysicalFileProvider(@"C:\Path\To\Files"),
        RequestPath = new PathString("/somepath")
    })
    

    见: https://github.com/aspnet/StaticFiles/blob/master/src/Microsoft.AspNetCore.StaticFiles/Infrastructure/SharedOptions.cs#L44

    https://github.com/aspnet/FileSystem/blob/dev/src/Microsoft.Extensions.FileProviders.Physical/PhysicalFileProvider.cs

    【讨论】:

    • 您可能想要创建一个composite 文件提供程序,它同时查看web root 文件夹和您的自定义文件夹。目前没有内置的复合提供程序,但很容易创建。
    • 请记住,如果目录不存在,应用程序将无法启动。这让我在部署测试服务器时遇到了一些困难。
    • 是否可以保留路径?例如localhost/somepath 重定向到 localhost。我怎样才能让它留在 /somepath 上?
    • 这能很好地转换为 Linux 文件路径吗?
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2017-05-18
    • 2021-07-26
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2019-03-31
    • 2017-08-25
    相关资源
    最近更新 更多