css - 页面刷新导致css被忽略

标签 css google-chrome iis-6 mime-types

我的页面加载正常,然后只要您点击刷新按钮,所有样式就会消失。

好像是chrome特有的。如果我查看网络选项卡,我会看到我的 css 文件返回 304 未修改,但类型已更改为文本/html。在初始加载时它是 text/css。

如果我关闭缓存一切正常。

我在 here 上看到了类似的问题但它之前工作正常,我没有更换过服务器。

我似乎已将其缩小为一个 css 文件的问题。 特别是添加背景图片。

body {background:#b4dfff url(/images/backgrounds/background.jpg) no-repeat fixed top;
text-align:left;
font-family: Helvetica, Arial, sans-serif;
color: #585858;
font-size: 12px;    
}

如果我删除背景,问题发生的频率就会大大降低。 我尝试将其更改为

background-color:#b4dfff;
Background-image:url(/images/backgrounds/background.jpg) no-repeat fixed top;

那没用

最佳答案

事实证明这与 chrome 处理 304 响应有关。

Chrome 请求内容并收到 304 响应,表示内容未修改。

当 IIS 返回 304 响应时,它包含内容类型。 Chrome 不会忽略内容类型,并且会查看内容类型已更改,因为 IIS 仅返回默认类型,Chrome 认为该文件不再是样式表并且不会加载它。

因此,为了解决这个问题,我们让它每次都重新加载样式表。 我还没有想出一种简单的方法来修改 304 响应,使其不包含内容类型。

这是谷歌问题 https://code.google.com/p/chromium/issues/detail?id=246875

关于css - 页面刷新导致css被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15767917/

相关文章:

html - Wordpress 自定义 header 问题

jquery - 使一些原始的纸板波浪随着 Canvas 移动

javascript - 试图弄清楚如何在 Chrome 中解决 IE 的 document.frames ["someframe"].function

jquery - Ajax GET 结果突然出现 "ERR_INCOMPLETE_CHUNKED_ENCODING"和 "XMLHttpRequest: Network Error 0x800c0007"

iis-6 - IIS6 + HttpModule:此操作需要IIS集成管道模式

asp.net-mvc-3 - 配置错误 : System. Web.Helpers

jquery - 将 Bootstrap Navbar 修复到滚动顶部

html - 如何使用外部 CSS 设置 SVG 样式?

google-chrome - Chromecast 发件人 : session error when requesting new session

iis - WebResource.axd 404 用于我的 SiteMapPath CSS 和其他