2012-04-06 9 views
0

FTPに画像(またはCSS、JSなど)を送信することがあるのはなぜか、アップロードされない(キャッシュされる)のはなぜですか?FTP転送後にダブル "/"を付けたFirebugリクエスト

#container { 
    background: url("../images/bg.jpg") no-repeat scroll 0 0 transparent; 
    height: 895px; 
    overflow: hidden; 
} 

しかし//../images//bg.jpg)で、私は新しいイメージ

#container { 
    background: url("../images//bg.jpg") no-repeat scroll 0 0 transparent; 
    height: 895px; 
    overflow: hidden; 
} 

答えて

1

を見ることができますファイルがアップロードされますが、ブラウザによってキャッシュされているようです。

Firefox/IE(他のブラウザには異なるショートカットがあるかもしれません)でCTRL + F5を再読み込みしてみてください。常に新しいファイルが表示されるはずです。

リソース(JS、CSS、およびイメージファイル)は、ブラウザによって何らかの攻撃的にキャッシュされます。 HTMLページでは、リソースをリフレッシュするたびに新しいHTTPリクエストが生成されますが、HTTPリクエストがまったく生成されないことがあります。あなたはそれを見ることができます。 Firebugのネットパネルで

キャッシュは一般的に非常に面倒なトピックです。多くのことは、サーバーとブラウザの設定と実装によって異なります。

ブラウザキャッシュは、通常、正確なURLマッチングによって実装されます。したがって、http://someserver/bg.jpghttp://someserver//bg.jpgは、2つの全く異なるのURLです。しかし、多くのHTTPサーバーは、同じコンテンツを要求したとみなし、サーバーのルートフォルダーに格納されているbg.jpgファイルの内容を送信します(URLとこのURLにリンクされているコンテンツの違いを確認する必要があります)。

最初のURLを訪問した場合は、ブラウザによってキャッシュされます。その後、イメージの新しいバージョンをアップロードした後は、ブラウザのキャッシュ実装と初めて 'bg.jpg'をダウンロードしたときに送信されたサーバーのキャッシュ設定に大きく依存します。たとえば、HTTPレスポンスヘッダーでイメージと共に送信されたサーバー設定は、次の1時間の場合、イメージがブラウザーによってキャッシュされ、サーバーに依頼することなくキャッシュから直接ロードされている可能性があります。不要なトラフィックを避けるように設定してください)。

ファイルの「新鮮な」バージョンを取得する方法は、現在のタイムスタンプをリクエストに追加することです(ただし、一般的にはサーバー側の世代またはJavaScriptに限定されています)。スクリプト) - CSSではあまり意味がありません。

だから、私はそれを書く時に、スクリプトは http://someserver/bg.jpg?1334442703 をサーバーに要求されますが、私はページを更新すると、数秒後に、クエリ文字列を破棄します http://someserver/bg.jpg?1334442711

ほとんどのサーバーになります( '?'の後の文字列)、両方のクエリで同じ内容のbg.jpgファイルを返すだけですが、画像のURLが異なるため、ブラウザから画像をキャッシュから読み取る必要がありません。

+0

恐ろしい説明=) –

+0

ありがとう:)ブラウザのキャッシュとプロキシのキャッシュについては、こちらをご覧ください。http://www.mnot.net/cache_docs/ –

+0

確かに私は読むでしょう。ありがとう。 –

関連する問題