余培毓 发表于 2023-12-25 10:42:26

.net core中如何自定义静态文件目录、默认主页、和文件浏览目录?

在.NET Core中,UseStaticFiles、UseDefaultFiles、UseDirectoryBrowser和UseFileServer中间件用于处理静态文件和目录浏览。下面我将为你提供一个简单的例子,演示它们的用法。
首先,确保你的项目已经安装了
Microsoft.AspNetCore.StaticFiles NuGet包,因为这是这些中间件的依赖。
dotnet add package Microsoft.AspNetCore.StaticFiles然后,打开 Startup.cs 文件,并根据需要配置这些中间件:
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;

namespace StaticFilesExample
{
    public class Startup
    {
      public void ConfigureServices(IServiceCollection services)
      {
            // 这里不需要特别的配置,因为我们只使用了静态文件中间件
      }

      public void Configure(IApplicationBuilder app)
      {
            // 1. UseStaticFiles中间件,用于处理静态文件
            // 可以传入StaticFileOptions进行配置
            // 在这里,我们指定了自定义的静态文件目录 "/custom-static"
            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(
                  System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "custom-static")),
                RequestPath = "/custom-static"
            });

            // 2. UseDefaultFiles中间件,用于处理默认文件
            // 可以传入DefaultFilesOptions进行配置
            app.UseDefaultFiles(new DefaultFilesOptions
            {
                DefaultFileNames = new List<string> { "custom-index.html" }
            });

            // 3. UseDirectoryBrowser中间件,用于启用目录浏览
            // 可以传入DirectoryBrowserOptions进行配置
            app.UseDirectoryBrowser(new DirectoryBrowserOptions
            {
                FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(
                  System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "custom-static")),
                RequestPath = "/custom-static"
            });

            // 4. UseFileServer中间件,它包含了UseDefaultFiles、UseStaticFiles和UseDirectoryBrowser的功能
            // 可以传入FileServerOptions进行配置
            app.UseFileServer(new FileServerOptions
            {
                FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(
                  System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "custom-static")),
                RequestPath = "/custom-static",
                EnableDirectoryBrowsing = true
            });

            // 默认路由
            app.UseRouting();

            // 默认端点
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapDefaultControllerRoute();
            });
      }
    }
}在上面的示例中:

[*]对于UseStaticFiles,我们通过StaticFileOptions指定了自定义的静态文件目录和请求路径。
[*]对于UseDefaultFiles,我们通过DefaultFilesOptions指定了自定义的默认文件名。
[*]对于UseDirectoryBrowser,我们通过DirectoryBrowserOptions指定了自定义的目录浏览文件目录和请求路径。
[*]对于UseFileServer,我们通过FileServerOptions指定了自定义的文件服务目录、请求路径和启用目录浏览。
你可以根据实际需求调整这些配置选项。希望这个例子能够帮助你更好地理解和使用这些中间件。
 


来源:https://www.cnblogs.com/hanbing81868164/archive/2023/12/25/17925224.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: .net core中如何自定义静态文件目录、默认主页、和文件浏览目录?