ASP.NET 5中的静态文件处理

ASP.NET 5 与之前的 ASP.NET 相比,有着翻天覆地的变化。了解与熟悉它需要一个过程,而我选择的了解方式是一步一步从无而有手写一个简单的 ASP.NET 5 程序,然后根据遇到的问题进行学习。

这篇博文是关于静态文件(比如图片,css)处理的。

在之前的 ASP.NET 中,只需要将静态文件放到相应的网站目录中就行了,这是由 IIS 进行处理的,在 ASP.NET 程序中可以不用关心。

但是在 ASP.NET 5 中有 2 个不一样的地方。

第一个就是在 ASP.NET 5 中,网站根目录不等于 ASP.NET 应用程序的根目录。

网站根目录是由 project.json 中的 webroot 的值指定的。比如 ASP.NET 5 应用程序的根目录是 HelloCnblogs,而 webroot 的值是 wwwroot,那网站根目录就是 HelloCnblogs/wwwroot。假设现在想在网站根目录的 styles/ 文件夹中放一个 about.css 文件,就需要放在 HelloCnblogs/wwwroot/styles/ 文件夹中。

.
└── wwwroot
    └── styles
        └── about.css

第二个就是要让静态文件能被访问,需要在 project.json 中引用处理静态文件的程序集,并且在 Startup.cs 中进行配置。

开始不知道,添加了静态文件后,访问时一直是 404 错误。后来才知道,需要在 project.json 中添加 Microsoft.AspNet.StaticFiles 的引用:

{
    "dependencies": {
        "Microsoft.AspNet.StaticFiles": "1.0.0-*"
    }
}

还要在 Startup.cs 调用 app.UseStaticFiles() :

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.UseStaticFiles();
    }
}
时间: 2024-08-10 19:19:06

ASP.NET 5中的静态文件处理的相关文章

Dotnet Core 在ASP.NET Core中使用静态文件

来自微软官网  在ASP.NET Core中使用静态文件:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/static-files: 提供静态文件 静态文件通常位于web root(<content-root> / wwwroot)文件夹中.有关详细信息,请参阅内容根和Web根.您通常将内容根设置为当前目录,以便web root在开发过程中找到项目. public static void Main(string[] args)

Asp.Net Core 中的静态文件

Asp.Net Core 中的静态文件 在这节中我们将讨论如何使 ASP.NET Core 应用程序,支持静态文件,如 HTML,图像,CSS 和 JavaScript 文件. 静态文件 默认情况下,Asp.Net Core 应用程序不会提供静态文件. 静态文件的默认目录是wwwroot,此目录必须位于项目文件夹的根目录中. 将图片复制并粘贴到 wwwroot 文件夹中.我们假设文件的名称是 banner.jpg.为了能够从浏览器访问此文件,路径为:http://{{serverName}}/b

asp.net core 系列之静态文件

这篇讲解asp.net core中的静态文件(大致翻译于官网). 静态文件,例如HTML,CSS, images和JavaScript. 要想直接被客户端访问,需要做一些配置. 一.Serve static files(提供静态文件服务) 静态文件存储在项目的web root 目录下.默认的目录是<content_root>/wwwroot,但可以通过UseWebRoot方法来改变默认目录. 更多可以查看: See Content root and Web root for more info

ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介

概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware.CustomizeMiddleware和Asp.NetCore Identity.但是由于所有的ASP.NET Core的版本有些老,所以,此次重写一次.使用最新的ASP.NET Core 1.1版本.对于ASP.NET Core 1.1 Preview 1会在以后的文章中介绍 目录 使用静态文件 使用路由

ASP.NET Core应用针对静态文件请求的处理[2]: 条件请求与区间请求

通过调用ApplicationBuilder的扩展方法UseStaticFiles注册的StaticFileMiddleware中间件帮助我们处理针对文件的请求.对于StaticFileMiddleware处理请求的逻辑,大部分读者都应该想得到:它根据请求的地址找到目标文件的路径,然后利用注册的ContentTypeProvider根据路径解析出与文件内容相匹配的媒体类型,默认情况下得到的媒体类型是根据目标文件的扩展名解析出来的.解析出来的媒体类型将作为响应报头Content-Type的值.St

霸气!Nginx 中缓存静态文件秘籍

导读 这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设置一个时间,这样用户的浏览器就会缓存这些文件.这样能节省带宽,并且在访问你的网站时会显得更快些(如果用户第二次访问你的网站,将会使用浏览器缓存中的静态文件). 1.准备事项 我想你需要一个正常工作的 nginx 软件,可以查看另一篇的帖子:在 Ubuntu 16.04 LTS 上安装 Nginx,P

ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面

DefaultFilesMiddleware中间件的目的在于将目标目录下的默认文件作为响应内容.我们知道,如果直接请求的就是这个默认文件,那么前面介绍的StaticFileMiddleware中间件会将这个文件响应给客户端.如果我们能够将针对目录的请求重定向到这个默认文件上,一切就迎刃而解了.实际上DefaultFilesMiddleware中间件的实现逻辑很简单,它采用URL重写的形式修改了当前请求的地址,即将针对目录的URL修改成针对默认文件的URL.[本文已经同步到<ASP.NET Cor

如何在 nginx 中缓存静态文件

这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设置一个时间,这样用户的浏览器就会缓存这些文件.这样能节省带宽,并且在访问你的网站时会显得更快些(如果用户第二次访问你的网站,将会使用浏览器缓存中的静态文件). 1.准备事项 我想你需要一个正常工作的 nginx 软件,就像这篇教程里展示的:在 Ubuntu 16.04 LTS 上安装 Nginx,PHP

【jsp】怎么在jsp文件中引入静态文件(.js .css)

如果在jsp文件中引入静态文件比如(.js或.css等等),可以在使用 /项目名称/路径 的方式,但是这种方式如果在修改了项目了名称后就显得比较麻烦了.除了之外还许多方式,比如相对路径等等.一般情况下,可以先获得项目的根路径,然后再加上文件路径.  ${pageContext.request.contextPath}  可以获得当前项目的路径,然后就只需要在后面加上引入的静态文件的文件路径即可.比如: 这样就可以引入js文件下的jquery.min.js文件了.