7

我正在开发一个 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 文件中的任何样式都不起作用。

4

5 回答 5

4

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

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

并将其放在其他人之前。

于 2008-09-18T23:58:26.117 回答
3

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

于 2008-09-18T16:40:00.257 回答
1

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

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

这很疯狂...

于 2011-11-08T23:20:48.870 回答
0

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

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

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

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

于 2008-09-18T17:39:25.463 回答
-1

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

于 2008-09-18T16:29:01.517 回答