【问题标题】:What might cause CSS to fail to load occasionally on all browsers?什么可能导致 CSS 在所有浏览器上偶尔加载失败?
【发布时间】:2017-12-13 14:55:13
【问题描述】:

我正在开发一个 web 应用程序,我们经常会遇到在不应用 CSS 的情况下加载页面的情况。这个问题在 IE6、IE7、Safari 3 和 FF3 中都出现过。

页面刷新总能解决问题。

加载了 3 个 CSS 文件,都使用 @import 在同一个样式块中:

<STYLE type="text/css">
  @import url([base css file]);
  @import url([skin css file]);
  @import url([generated css path]);
</STYLE>

在任何情况下,当我们花时间检查 html 源代码时,没有什么不寻常的。访问日志似乎也很正常 - 每当请求静态 CSS 文件时,我们都会收到 HTTP 304 响应,而我们生成的 CSS 会收到 HTTP 200 响应。

对于 css 文件和生成的 css,mimetype 是 text/css。我们正在使用 iPlanet 服务器,它将请求转发到 Tomcat 服务器。

davebug 问:

总是相同的 css 文件没有加载,还是所有这些文件的问题,均匀?

没有加载任何 CSS 文件。 HTML 中定义的任何样式都可以正常工作,但发生这种情况时,任何 CSS 文件中的任何样式都无法正常工作。

【问题讨论】:

  • 总是相同的css文件没有加载,还是所有的问题,均匀?

标签: css tomcat


【解决方案1】:

我遇到过类似的事情,我可以通过首先使用“link rel”方法而不是“@import”来包含基本样式表来解决。即将您的 [base css file] 包含移动到:

<link rel="stylesheet" href="[base css file]" type="text/css" media="screen" />

把它放在其他人之前。

【讨论】:

  • 几周前进行了此更改,到目前为止我们还没有看到问题再次出现。它发生得如此随机,但很难说它是否已修复。
  • 这对我不起作用。只有在将 CSS 文件移动到外部 Web 服务器(非 Tomcat)后,我才能摆脱这种情况。
【解决方案2】:

如果它经常发生以至于您能够在浏览器中看到它,请尝试安装 Live http headers Firefox 扩展或 Tamper Data 扩展,并观察浏览器看到的响应标头。

【讨论】:

    【解决方案3】:

    我不知道为什么,但在我的情况下,如果页面是从具有类似 /ActionName 的路径的操作加载的,我会看到这个问题。

    但如果我将它(例如)更改为 /reservedArea/ActionName/aPath/ActionName 它可以工作:/

    太疯狂了……

    【讨论】:

      【解决方案4】:

      检查标头是个好主意,但我想您将从它们中学到的只是服务器不会每隔一段时间就响应请求。

      我经常在网上看到这种情况。图片不会加载,直到你刷新,css被搞砸了等等。所有的情况都可以通过刷新来解决。

      我想你可以“修复”这个问题的一种方法,也许是在你的cs文件中为某些元素的图像指定一个url。然后,在 javascript 中加载页面时,获取该元素并查看该图像是否已加载。如果没有,则让页面自行重新加载。

      看起来很异国情调,但这是我唯一的想法......

      【讨论】:

        【解决方案5】:

        使用 ab 或 httperf 或 curl 或其他东西从网络服务器重复加载 CSS 文件。也许它不会始终如一地为页面提供服务。

        【讨论】:

        • 我认为这就是问题所在
        猜你喜欢
        • 2018-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-01
        • 2010-12-01
        • 2012-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多