静态文件

使用静态文件

UseStaticFiles,使~/指向wwwroot文件夹。

添加wwwroot外部静态文件夹则需要使用以下方法

public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles(); // For the wwwroot folder

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")),
        RequestPath = "/StaticFiles"
    });
}

使用:<img src="~/StaticFiles/images/banner1.svg" alt="ASP.NET" class="img-responsive" />

StaticFileOptions还可以用来设置http响应标头

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    var cachePeriod = env.IsDevelopment() ? "600" : "604800";
    app.UseStaticFiles(new StaticFileOptions
    {
        OnPrepareResponse = ctx =>
        {
            // Requires the following import:
            // using Microsoft.AspNetCore.Http;
            ctx.Context.Response.Headers.Append("Cache-Control", $"public, max-age={cachePeriod}");
        }
    });
}

 

静态文件授权

该文件要放在公开目录之外。

[Authorize]
public IActionResult BannerImage()
{
    var file = Path.Combine(Directory.GetCurrentDirectory(), 
                            "MyStaticFiles", "images", "banner1.svg");

    return PhysicalFile(file, "image/svg+xml");
}

启用目录浏览

public void ConfigureServices(IServiceCollection services)
{
    services.AddDirectoryBrowser(); //添加所需服务
}

public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles(); // For the wwwroot folder

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images")),
        RequestPath = "/MyImages"
    });

    app.UseDirectoryBrowser(new DirectoryBrowserOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images")),
        RequestPath = "/MyImages"
    });
}

注意:

在UseStaticFiles之后,注意区别大小写。

放在wwwroot之外,以免不慎泄露代码

删除IIS网站的浏览模块:

  1. 转到“模块”功能 。
  2. 在列表中选择 StaticFileModule 。
  3. 单击“操作”侧栏中的“删除” 。

使用默认文档

public void Configure(IApplicationBuilder app)
{
    app.UseDefaultFiles(); //default.htm、default.html、index.htm、index.html

    app.UseStaticFiles();
}

public void Configure(IApplicationBuilder app)
{
    // 修改默认文件
    DefaultFilesOptions options = new DefaultFilesOptions();
    options.DefaultFileNames.Clear();
    options.DefaultFileNames.Add("mydefault.html");   
    app.UseDefaultFiles(options);
    app.UseStaticFiles();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值