0

我在 Index.cshtml 文件中有这段代码:

    @{ViewBag.Title = "Home";}
<link href="Home.css" rel="stylesheet" type="text/css"/>
<img id="logo" src="~/Content/Images/Logo.png" />

该文件是我的 ASP.NET MVC4 应用程序中的一个视图。

当我运行 Web 应用程序时,我可以看到源代码在此周围添加了适当的 HTML,并且还添加了对“Content\Site.css”文件的引用。

但是,在运行应用程序时,似乎既没有使用 Site.css 文件,也没有使用我自己的 Home.css CSS 文件。首先,当我在运行应用程序时查看源代码时,我对 Site.css 所做的任何编辑都不会反映出来,这很奇怪。在运行项目并通过浏览器检查源代码之前,我已经保存了所有内容并构建了项目。

其次,似乎没有使用指向 Home.css 的 CSS 链接(与我的视图位于同一文件夹中)。HTML 编辑器对该文件没有问题,因此表明该路径有效 - 但是当我在浏览器的源代码编辑器中单击 Home.css 时,我收到 404 错误,表示该文件不存在。

知道我在这里做错了什么吗?

我在这里使用的实际图像正确加载。

4

3 回答 3

1

您还可以使用@url.content()辅助方法将您的相对路径转换为绝对路径。当您要实现具有多个区域的网站时,它非常有用,而且它也是在 MVC 中设置内容路径的常用样式,因此最好这样做

于 2012-12-08T17:18:39.047 回答
1

似乎没有使用指向 Home.css 的 CSS 链接(与我的视图位于同一文件夹中)。

Views文件夹被限制从客户端直接访问。所以你不应该在其中放置任何 CSS、javascript 或图像文件。它们应该位于您的~/Content文件夹(或可从客户端访问的其他文件夹)中。然后像这样引用它:

<link href="~/Content/Home.css" rel="stylesheet" type="text/css"/>

就您的第一个问题~/Content/Site.css而言,样式表可能会被浏览器缓存。尝试清除缓存。如果您在发布模式下运行应用程序并启用了 Bundles,ASP.NET MVC 4 将自动发出一个缓存响应标头,以便将捆绑包中包含的静态资源缓存在浏览器中。

于 2012-12-08T16:53:49.667 回答
0

css 属于头脑 - 我受不了 .net

它还不需要在标签末尾有结束的 /> - 它会把事情搞砸。XHTML 是正确的,但不是每个人都理解它。打开链接标签并尝试...

于 2012-12-08T16:55:35.253 回答