在调试 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 在更新数据库期间不会为数据库播种
IIS Express 在调试 ASP.NET MVC 时出现拒绝访问错误