提供了静态文件,但未使用UseStaticFiles()方法重载

时间:2019-07-25 09:15:45

标签: asp.net-core asp.net-core-middleware asp.net-core-staticfile

我正在学习ASP.NET Core 2,并且试图控制UseStaticFiles()方法重载。我正在使用的书提供了一个简单的示例来说明如何启用静态内容:在创建一个空项目并设置依赖项(在这种情况下为twitter-bootstrap)之后,他创建了一个基本控制器

public class HomeController : Controller
{
    public IActionResult Index() =>
        View(new Dictionary<string, string>
        {
            ["Message"] = "This is the index action"
        });
}

和关联的Index视图,并带有样式表link的引用(请注意,标记帮助器的依赖关系已在通常的_ViewImports.cshtml中解决):

@model  Dictionary<string, string>
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <link asp-href-include="~/lib/twitter-bootstrap/css/*.css" rel="stylesheet" />
</head>
<body class="p-1">
    <table class="table table-sm table-bordered table-striped">
        @foreach(var kvp in Model)
        {
            <tr><th>@kvp.Key</th><td>@kvp.Value</td></tr>
        }
    </table>
</body>
</html>

首先,在提供{p>的Configure()类中的Startup方法之前,不要加载css引用

app.UseStaticFiles();

重载方法。根据该书的作者,这足以使css链接正常工作:

  

此添加意味着Index视图中的link元素将正常工作,并允许浏览器加载Bootstrap CSS样式表。

“问题”是,即使没有UseStaticFiles()方法重载,我也可以立即看到CSS样式表。

这是我的启动课程:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        // app.UseStaticFiles();
        app.UseMvc(routes => {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
    }
}

我想念什么? 谢谢。

0 个答案:

没有答案