7

I'm working on a webapp, and every so often we run into situations where pages will load without applying CSS. This problem has shown up in IE6, IE7, Safari 3, and FF3.

A page refresh will always fix the problem.

There are 3 CSS files loaded, all within the same style block using @import:

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

In any situation when we take the time to examine the html source, nothing is out of the ordinary. Access logs seem normal as well - we're getting HTTP 304 responses for the static CSS files whenever they are requested, and an HTTP 200 response for our generated CSS.

The mimetype is text/css for the css files and the generated css. We're using an iPlanet server, which forwards requests to a Tomcat server.

davebug asked:

Is it always the same css file not loading, or is the problem with all of them, evenly?

None of the CSS files load. Any styles defined within the HTML work fine, but nothing in any of the CSS files works when this happens.

4

5 に答える 5

4

「@import」ではなく「link rel」メソッドを使用して最初に基本スタイルシートを含めることで修正できた同様のことが起こりました。つまり、[base css file] インクルードを次の場所に移動します。

<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 が台無しになっているなど、すべての状況は更新によって解決されます。

これを「修正」できる1つの方法は、csファイルでいくつかの要素の画像のURLを指定することだと思います。次に、JavaScript でのページの読み込み時に、その要素を取得し、その画像が読み込まれたかどうかを確認します。そうでない場合は、ページ自体をリロードします。

かなりエキゾチックに見えますが、それが私が持っていた唯一のアイデアでした...

于 2008-09-18T17:39:25.463 に答える
-1

ab、httperf、curlなどを使用して、WebサーバーからCSSファイルを繰り返しロードします。おそらく、それは一貫してページを提供していません。

于 2008-09-18T16:29:01.517 に答える