zoukankan      html  css  js  c++  java
  • ASP.Net Core -- 静态文件

    静态文件(如 HTML、CSS、图像和 JavaScript),在传统的.Net Framework中我们可以通过相关路径直接访问获取,而在.Net Core中需要进行一些配置才能访问得到这些文件

    访问wwwroot文件夹内的文件,在Configure方法内添加“app.UseStaticFiles();”即可,默认情况下,UseStaticFiles()中间件仅提供 wwwroot 文件夹中的静态文件

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        //添加静态文件中间件
        app.UseStaticFiles();
    
        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });
    }

    注:比如现在有一个index.html文件在wwwroot内,从浏览器访问,如:http://localhost:xxxx/index.html,就可以显示页面内容,如果没有加中间件,当输入路径回车时依旧会显示app.run中的“hello world”

    二:访问wwwroot文件夹外的文件

    1:访问默认文件。很多项目都有一个默认文件,就是当项目运行起来时,就直接访问某一个文件,比如:登录页,主页等等。我们只需在Configure方法内添加“app.UseDefaultFiles()”即可,代码如下:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    
        //添加默认文件中间件
        app.UseDefaultFiles();
    //添加静态文件中间件 app.UseStaticFiles(); app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); }

    以下是UseDefaultFiles中间件默认会去查找的地址信息:

    - index.htm 的默认文件
    - index.html
    - default.htm
    - default.html

    默认的文件名只有这些,如果用户想自定义默认文档,需要将以上默认文档清除,然后从新定义,代码如下:

    //将main.html指定为默认文档
    DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();

    //将默认文档清除 defaultFilesOptions.DefaultFileNames.Clear();

    //从新定义默认文档名称 defaultFilesOptions.DefaultFileNames.Add(“main.html”);
    //添加默认文件中间件 app.UseDefaultFiles(defaultFilesOptions);
    //添加静态文件中间件 app.UseStaticFiles();

    这样,当项目启动时,就会直接显示main.html的内容

    此外,还可以通过“UseFileServer 中间件”设置默认文档,UseFileServer结合了UseStaticFiles,UseDefaultFiles和UseDirectoryBrowser中间件的功能。DirectoryBrowser中间件,支持目录浏览,并允许用户查看指定目录中的文件。 我们可以用UseFileServer 中间件替换UseStaticFiles 和 UseDefaultFiles中间件。代码如下:

    FileServerOptions fileServerOptions = new FileServerOptions();
    
    fileServerOptions.DefaultFilesOptions.DefaultFileNames.Clear();
    
    fileServerOptions.DefaultFilesOptions.DefaultFileNames.Add("main.html");
    
    app.UseFileServer(fileServerOptions);

    这样比较简便,项目启动直接访问main.html,同时也可以访问wwwroot里其它文件

    2:访问指定目录文件(不在wwwroot文件夹内),根据自定义路径,来访问相应的文件。代码如下,还是加入在Configure()方法中

    app.UseStaticFiles(new StaticFileOptions
       {
         //访问项目中"MyStaticFiles"文件
        FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")),
    
        //设置的访问是要输入的路径
        RequestPath = "/StaticFiles"
       });

     这样,在浏览器输入:http://localhost:xxxx/StaticFiles/Login.html即可显示login.html的文件内容!

     另外,用一张图来大概总结一下!

     小结:

    大多数情况,我们都是使用自定义的路径方式,比较灵活,此外,添加中间件一般都是使用use开头的扩展方法添加中间件!

    如果那个地方写的不对,欢迎指出,一起学习!

  • 相关阅读:
    iOS_绘制带删除线的Label
    SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系
    Android FoldingLayout 折叠布局 原理及实现(一)
    [JavaSecurity]
    AWR--service statistics
    VC驿站黑客编程(关机,重新启动,注销)
    每天进步一点点——Linux中的文件描写叙述符与打开文件之间的关系
    Cocos2d-X中的粒子
    cocos2dx3.0 对象池
    hdu 5317 RGCDQ
  • 原文地址:https://www.cnblogs.com/dcy521/p/13331238.html
Copyright © 2011-2022 走看看