找回密码
 立即注册
快捷导航

[.NET] 静态文件、默认文件 中间件 UseStaticFiles() & UseDefaultFiles()

[复制链接]
狗蛋 2023-7-7 18:53:03 | 显示全部楼层
本帖最后由 狗蛋 于 2023-7-8 15:38 编辑

静态文件中间件 UseStaticFiles()

默认情况下,静态文件(如HTML、CSS、图像和JavaScript)是ASP.NETCore应用直接提供给客户端的资产。

静态文件存储在项目的Web根目录中。默认目录为 [content root}/wwwroot,但可通过UseWebRoot方法更改目录。

使用

在项目中新建 wwwroot/images 目录,放上一张 bg.png a图片(其他也可)

注意,将文件的 复制到输出目录 改为:始终复制

app.UseStaticFiles();    // 启动静态文件中间件

完成,访问 hxxp://xxx/images/bg.png

修改 wwwroot

修改默认的 wwwroot 目录 为 MyStaticFiles,并加入请求前缀路径:

app.UseStaticFiles(new StaticFileOptions(){
    FileProvider = new PhysicalFileProvider(
        Path.Combine(builder.Environment.ContentRootPath, "MyStaticFiles")),
    RequestPath = "pppp"      // 请求前缀路径
});  // 启动静态文件中间件

请求:hxxp://xxx/pppp/MyStaticFiles/bg.png 即可

目录浏览

允许在指定目录中列出目录。出于安全考虑,目录浏览默认处于禁用状态。

通过 AddDirectoryBrowser 和 UseDirectoryBrowser 启用目录浏览:

builder.Services.AddDirectoryBrowser();         // 务必要加上这个

var fileProvider = new PhysicalFileProvider(Path.Combine(builder.Environment.WebRootPath, "images"));
var requestPath="/MyImages";

// Enable displaying browser links.
app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = fileProvider,
    RequestPath =requestPath
});

app.app(new DirectoryBrowseroptions
    FileProvider = fileProvider,
    ReguestPath = requestPath
);

静态文件、默认文件 中间件  UseStaticFiles() & UseDefaultFiles()167 作者:狗蛋 帖子ID:443

默认文件中间件 UseDefaultFiles()

会默认匹配 :

  • index.html
  • index.htm(默认)
  • default.html
  • default.htm

注意顺序,先 UseDefaultFiles() 再 UseStaticFiles()

清空默认的,加入自己的:

DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
defaultFilesOptions.DefaultFileNames.Add("zdy.html");

app.UseDefaultFiles(defaultFilesOptions);

这个代码,也可以用下面的 UseFileServer() 来实现;

UseFileServer() 中间件

这个中间件结合了上面的 UseStaticFiles()  UseDefaultFiles() 和 UseDirectoryBrowser() 中间件的功能;

FileServerOptions fileServerOptions = new FileServerOptions();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Clear()
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Add("zdy.html");

app.UseFileServer(fileServerOptions);


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-23 00:42

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表