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