Visual Studio 2017(v15.4.4)
ASP.NET核心MVC
我从空模板创建了新的ASP.NET Core Web Application并填充了它。但是当我开始调试时,我发现我的CSS文件无法访问。
找不到网址的页面 http://localhost:51308/css/styles.css
HTTP错误404
为什么会发生这种情况?如何解决这个问题?
styles.css的:
.field-validation-error {color: #f00;}
.field-validation-valid {display: none;}
.input-validation-error {border: 1px solid #f00; background-color: #fee;}
.validation-summary-errors {font-weight: bold; color: #f00;}
.validation-summary-valid {display: none;}
RsvpForm.cshtml :
@model Razor.Models.GuestResponse
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Razor
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>RSVP Form</title>
<link rel="stylesheet" href="~/css/styles.css"/>
</head>
<body>
<div>
This is RSVP form.
<form asp-action="RsvpForm" method="post">
<div asp-validation-summary="All"></div>
<p>
<label asp-for="Name">Your name:</label>
<input asp-for="Name" />
</p>
<p>
<label asp-for="Email">Your email:</label>
<input asp-for="Email" />
</p>
<p>
<label asp-for="Phone">Your phone:</label>
<input asp-for="Phone" />
</p>
<p>
<label>Will you attend?</label>
<select asp-for="WillAttend">
<option value="">Choose an option</option>
<option value="true">Yes I'll be there</option>
<option value="false">No, I can't come</option>
</select>
</p>
<button type="submit">Submit RSVP</button>
</form>
</div>
</body>
</html>
UPD
我将styles.css
重命名为site.css
并在GitHub上分享了此示例:here是此示例的代码源。
答案 0 :(得分:1)
您必须将css
,JQuery
,js
和...等所有固定文件放入wwwroot
文件夹中才能访问它。这是Asp.Net Core中的一项法律。
此外,当您运行项目时,按ctrl + U显示您的代码并单击css链接。必须显示css命令。单击后未显示Apeer文件未正确加载。
默认情况下,有一个名为site.css
的文件,您必须在其中编写所有css命令和网站样式。它在_Layout
中链接,您可以在此之后链接新的css文件。
要进行链接,只需将solution Explorer
中的css文件拖放到代码框中
没有其他案例
答案 1 :(得分:1)
你有两个问题。
app.UseStaticFiles();
这对于将javascript,css,html和其他静态文件作为wwwroot文件夹中的图像加载至关重要。@Url.Content()
正确解析剃刀视图中的静态文件:<link href="@Url.Content("~/css/site.css")" rel="stylesheet" />
只需使用&#34;〜/ css / site.css&#34;可能会工作,但不会100%的时间。我强烈建议使用共享的Layout.cshtml,它接管为您加载css文件。这将解决您的问题