在调试 ASP.NET MVC 应用程序期间未更新 CSS

Posted

技术标签:

【中文标题】在调试 ASP.NET MVC 应用程序期间未更新 CSS【英文标题】:CSS not updated during debugging ASP.NET MVC application 【发布时间】:2009-07-16 13:55:02 【问题描述】:

我正在开发一个基于 ASP.NET MVC 的测试应用程序。我是 CSS 的新手,所以我也在学习。

我创建了一个名为“new.master”的母版页并创建了一个新的 CSS“new.css”。我将控制器中的视图称为:

return View ("About", "new");

我正在做的是经常更新 CSS 和母版页。所以我经常在调试模式下运行应用程序。一段时间后,我不再看到 css 更改的效果。当我在 chrome 中“查看源代码”并检查 css 时,它显示的是旧版本。

当我更改母版页和 css 的名称时,我开始收到更新的视图,但这会持续一段时间,然后我再次停止获取 CSS 更新。你遇到过这个问题吗?我该如何解决? (太烦人了!)

【问题讨论】:

【参考方案1】:

您的浏览器正在缓存 CSS。如果您使用 F5 强制刷新,应该会显示任何更改。

【讨论】:

非常感谢。它确实解决了我的问题。就像地狱一样。我一度开始质疑我的学习能力。 :) 浏览器在我身上玩智力游戏 - 我添加的文字出现了,所以我假设它令人耳目一新,但 CSS 却没有。 F5 成功了。 每当有新的发布/部署时,有什么方法可以从代码中做到这一点? 您的框架/工具应该正在编译资产并在 url 中为其指定指纹。【参考方案2】:

我认为这可能是浏览器缓存问题。在 IE 和 FF 中,我通常使用 Ctrl + F5 或 Ctrl + Refresh 按钮。您也可以手动清除缓存。对于 IE,您可以使用 IE Dev Toolbar,对于 Firefox,您可以使用 Firebug,两者都可以轻松清除缓存。不确定 chrome,抱歉。

赛义德·易卜拉欣·哈希米

我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

【讨论】:

感谢您的回答。这是一个很好的,但其他人首先指出了缓存问题,所以接受了那个。不过你得到了我的投票 :) 再次感谢。 Ctr + F5 绝对解决了我在 Mozilla 上的问题。谢谢!【参考方案3】:

我发现了另一种可能发生这种情况的情况。

我们开始我们的应用程序时只使用指向 CSS 文件的普通链接,然后切换到使用捆绑。我们将旧的 <link href="@Url.Content("~/somePath/someStyle.css")" rel="stylesheet" type="text/css" /> 更新为 @Styles.Render("~/Styles/bundles/someStyle")

我们还使用了一些样式表,这些样式表仅在某些页面中需要,并且它们有自己的捆绑包。现在,对于其中一个,我们忘记将链接标记更改为@Styles.Render 语句。

结果是这个 CSS 不时更新(所以我们认为一切正常;样式没有丢失),但我们无法影响更新何时发生。当我开始对文件进行更改时,我意识到我所做的任何事情(清空缓存、重建项目、重新启动 Cassini)都会触发更新。浏览器总是得到一个304 Not modified

因此,如果您有这些症状,请检查您的链接。

【讨论】:

【参考方案4】:

通过右键单击检查进入chroom开发者面板->然后转到网络点击->勾选禁用缓存复选框(注意:应始终选中)->按F5刷新页面。

这对我有用,希望这可以帮助其他有这个问题的人! :)

【讨论】:

【参考方案5】:

很有可能你的浏览器中缓存了css,所以只需清除浏览器缓存,它应该会有所帮助

【讨论】:

【参考方案6】:

请使用 Ctrl+F5 刷新浏览器。

即使内容发生更改,F5 也可能会为您提供相同的页面,因为它可能会从缓存中加载页面。但是 Ctrl - F5 强制刷新缓存,并且会保证如果内容发生变化,你会得到新的内容。

希望对你有帮助

谢谢

【讨论】:

【参考方案7】:

当我有一个主视图时发生这种情况

必须在 html 文档中引用 CSS。作为一个 结果你不能将它们包含在部分视图中......因为在 在这种情况下,css 包含在 Html 正文中。请输入样式 承载局部视图的页面头部的工作表。

即使我在浏览器中按下 Ctrl-F5,我的部分视图中也会有 css 链接,并且对 css 文件的任何修改都不会发生。我还尝试在开发人员工具中清除缓存内容。通过查看源样式表,我注意到由部分视图链接的 css 文件没有更改,因此我的解决方法是将 css 链接从部分视图移动到要保存这些部分视图的主视图。

【讨论】:

【参考方案8】:

我也遇到过类似的事情。

然后突然发现bundle被添加到页面了:

@Styles.Render("/bundles/classifiedDetailCss")

代替:

@Styles.Render("~/bundles/classifiedDetailCss")

请注意第一个示例中缺少的 ~ 字符。

(第一个例子只在构建项目后才有效,否则即使在调试模式下也会返回缓存版本。)

【讨论】:

【参考方案9】:

这可以帮助解决开发和生产中的这个问题。 使用 asp-append-version="true"

【讨论】:

以上是关于在调试 ASP.NET MVC 应用程序期间未更新 CSS的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC Initializer 在更新数据库期间不会为数据库播种

如何在 ASP.NET MVC 中集成 AngularJS

IIS Express 在调试 ASP.NET MVC 时出现拒绝访问错误

ASP.NET MVC 网站视图模型在发布后未更新,但在发布中运行良好

查看未找到 - asp.net mvc 错误

如何在 ASP.Net MVC 6 中编辑和继续