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();
    }
}
posted @ 2015-06-28 16:39 dudu 阅读(...) 评论(...) 编辑 收藏