我正在学习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?}");
});
}
}
我想念什么? 谢谢。