19

クロムでのみ発生する奇妙な問題が職場で発生しています。css ファイルがキャッシュされていて、このファイルのコンテンツが再ダウンロードされていないようです。

問題は、「プライベート セッション」などの新しいセッションを使用すると、画像「mainSprite.png」が表示されないことです。

いくつかのテストの後、問題は、ユーザーが認証されていない場合に最初にリダイレクトを行うことに関連していると思います. 私が理解していることから、css ファイル内にリンクされているスプライトのダウンロードが完了しない可能性があります。リダイレクトが開始されるとすぐに無効なオブジェクトがキャッシュされ、その後のページでは何か間違ったものをキャッシュしたため、正しい画像を表示できません。

奇妙なことは、ある時点で実際にイメージを完全にロードすることです。しかし、それは記憶の中でそれをリフレッシュしていないようです...

最初の読み込みでリダイレクトを開始する前に 1 秒のタイムアウトを行い、画像が正しく表示されました。これは簡単な修正であり、すべてのコンピューターが css に含まれるすべての画像を 1 秒で読み込むことは期待できません。

編集

私が言える限り、それは本当に競合状態のように見えます。ロードする順番を変えました。require.js を使用します。CSS の後に js をロードする代わりに、前に js のロードを開始します。そして、ローカルサーバーに画像が正しく読み込まれるようになりました。

誰かがそれを調べることに興味がある場合:

http://api.checklist.com

編集 2

画像が表示されていない場合、新しいタブを開くと同じ問題が発生します。ブラウザーを閉じて再度開くと、最初の読み込みで機能し、画像はダウンロードされずにキャッシュから読み込まれます。つまり、ブラウザーを閉じる前に、画像が実際にダウンロードされたことを意味します。

4

6 に答える 6

1

残念ながら、リダイレクトに起因する問題のようです(リンクが開きません)。実際、Google chrome にはキャッシュに関する問題があり、開発時に面倒です (キャッシュをクリアし、新しい画像をロードし、新しい画像に対して同じことを行います..)。キャッシュをクリアする必要がある場合は、次のことを試してください。

に行ってみてください

chrome://chrome/settings/clearBrowserData

Chrome ブラウザで次のオプションを確認します。

キャッシュを空にします(ダウンロード履歴を消去し、Cookieおよび他のサイトとプラグインのデータを削除します)

[閲覧データを消去] ボタンをクリックします。

于 2012-12-11T18:59:23.013 に答える
0

まず、リダイレクトを絞り込む方法を見つけることをお勧めします。可能であれば、 PHPASP (2 つ挙げるとすれば)などの言語を使用して、ユーザー認証に基づいてコンテンツを動的に作成することをお勧めします。

Web ページでキャッシュを無効にする従来の方法は、<meta>タグ内に2 つのタグを設定すること<head> </head>です。ただし、これらは「公式」の標準ドキュメントの一部ではないため、技術的に「正しく」ないことに注意してください。これはまた、問題を回避するためのより良い配信システムを見つけるという最初の提案に再び傾倒することを意味します.

したがって、「テスト」目的の場合、タグは次のようになります。

<HEAD>
    <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="EXPIRES" CONTENT="0">
</HEAD>
于 2012-09-27T18:57:35.033 に答える
0

サーバー/バックエンドアプリにルートが設定されていると思います。このように Play! フレームワークの例:

# Ignore favicon requests
GET     /favicon.ico                    404

# Map static resources from the /app/public folder to the /public path
GET     /public/                        staticDir:public

# Catch all
*       /{controller}                   {controller}.index

要約によると、必要に応じて構成ファイルまたはhtaccessに静的フォルダールート(画像がある場所)を設定し、ブラウザーのURLバーで画像のURLを確認することをお勧めします(空のセッションで)。それはうまくいくはずです!

于 2012-09-12T08:59:26.493 に答える
0

あなたの質問やジレンマを理解していないかもしれませんが (説明が不足しているため、または Chrome を実行しているため、そのリンクでページが表示されないため)、ここで遭遇した例があり、Chrome で使用するだけで動作しますCSS の代わりにロードする Javascript/jQuery:

http://jsfiddle.net/2Cgyg/6/

URL の画像を使用: http://www.w3schools.com/cssref/img_tree.gif

そして、受け入れられた答えはChromeではうまくいきませんでしたが、これは上記のjsFiddleから得た質問です:

JavaScript から画像を読み込む

すべてのキャッシュなどは不要であり、画像が別のものに更新された場合にやりたくないことでさえ、このようにファイル名を変更することによってのみ実行できる更新を強制しないと表示されません更新された画像がユーザーに表示されないようにするには:

myPic.jpg?MMDDYYYY

また、変更する日付に従って日付を設定できます。

于 2014-08-12T23:51:59.660 に答える
0

あなたがする必要があるのは、クロムを介してキャッシュリストを追跡することだけです。私が見たところ、キャッシュされていないこのエラーが発生したことがわかります。

キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド 'プレースホルダー' がありません

したがって、トレースする場合は、マニフェスト オフライン モードを使用するか、コードを介してトレースできます。

ページをたどってテストするだけで、エラーがどこにあるのかわかりました:

ファイル: scripts2.js 20 行目 --> $('input[placeholder]').placeholder();

プレースホルダーの名前を確認し、このタグで変更する必要があります。

ありがとうございました

于 2012-09-07T00:22:10.127 に答える