.NET Core 项目经验总结: UseStaticFiles 静态文件的使用(四)

时间:2018-06-12 15:20 作者:Mr.Pan 阅读数:1206

        博客的富文本编辑器一直无法上传图片,今天决定修正这个问题,把uedtor放在wwwroot/lib下,在页面上引用了js文件,一切准备就绪,运行后发现无法找到路径404,但是文件都存在,引出了下面的静态文件访问的问题

        静态文件(如 HTML、CSS、图像和 JavaScript)是 ASP.NET Core 应用直接提供给客户端的资产。 需要进行一些配置才能提供这些文件。

        静态文件存储在项目的 Web 根目录中, 默认目录是 /wwwroot。

        在.Net Core 1.X 中  使用UseContentRoot 将内容根目录设为当前目录

     public class Program{    
         public static void Main(string[] args)    
         {        
            var host = new WebHostBuilder()
            .UseKestrel()            
            .UseContentRoot(Directory.GetCurrentDirectory())  
            .UseIISIntegration()
            .UseStartup<Startup>()
            .UseApplicationInsights()
            .Build();
            host.Run();
        }        
     }

        在.Net Core 2.X中用 WebHost.CreateDefaultBuilder 方法可将内容根目录设置为当前目录

    public class Program
    {
      public static void Main(string[] args)
        {
        BuildWebHost(args).Run();
        }
        public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
        }


提供 Web 根目录外的文件

  • wwwroot

    • css

    • images

    • js

  • MyStaticFiles

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"
    });
}


设置 HTTP 响应标头

StaticFileOptions 对象可用于设置 HTTP 响应标头。 除配置从 Web 根目录提供静态文件外,以下代码还设置 Cache-Control标头:

public void Configure(IApplicationBuilder app){    app.UseStaticFiles(new StaticFileOptions    {        OnPrepareResponse = ctx =>        {            // Requires the following import:            // using Microsoft.AspNetCore.Http;            ctx.Context.Response.Headers.Append("Cache-Control", "public,max-age=600");   //可公开缓存这些文件 10 分钟(600 秒)        }    }); }


问题解决的同时,发现了微软提供的文档,摘录了一部分,写成文章

文章地址:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/static-files?view=aspnetcore-2.1&tabs=aspnetcore2x


推荐阅读:

使用VSCode创建.NET Core 项目,添加类库间引用

.NET Core 项目经验总结:项目结构介绍 (一)

.NET Core 项目经验总结:Startup.cs 介绍(二)

.NET Core 项目经验总结:Session的配置与使用,使用Redis实现分布式Session(三)

.NET Core 项目经验总结: UseStaticFiles 静态文件的使用(四)

.NET Core 项目经验总结:异常处理(五)

.NET Core 项目经验总结:Authorize 登录授权以及多用户登录(六)





推荐文章

[推荐] .NET Core 项目经验总结:Startup.cs 介绍(二)

[推荐] .NET Core 项目经验总结: UseStaticFiles 静态文件的使用(四)

[推荐] ASP.NET Core开发者成长路线图(转)

[推荐] Redis 使用经验总结(一): 下载与安装

[推荐] Redis 使用经验总结(三): 主从复制 slaveof ip port

[推荐] .NetCore 发布类库为Nuget包(打造自己的NuGet包)

[推荐] .Net Core 使用 @inject 在View中使用注入(DI)引入Microsoft.AspNetCore.Hosting.IHostingEnvironment

[推荐] nginx在windows上安装配置 - nginx for Windows

[推荐] .net core中前端包的安装

[推荐] .net core 2.0独立部署 (待验证)

[推荐] .net core 中间件管道底层剖析 (转)

[推荐] .net core 杂记:日记记录 (转)

[推荐] c# 个人总结

[推荐] .Net Core 2.0 使用dotnet 命令创建.Net Core Web项目

[推荐] Jquery.Validate例子


评论列表

   回复 引用
#2楼    2018/6/19 16:49:46    13718869160
还么么哒勒 超哥 啥时候评论可以发图片表情啊!!!!!!!

   回复 引用
#1楼    2018/6/12 22:28:44    duanshichang
赞一个,么么哒



注册用户登录后才能发表评论,请登录注册,访问 博客首页