• ベストアンサー

webサイトでファイルの内容が変更されていない?

たまになんですが、サイトにアップしている、例えば、gifファイルの内容を変更して再度アップしても画面では 旧のファイル内容のままってことがあります。これってどうしてですか? ファイル名を変更すれば、新しい内容のファイルになるんですが? 一時ファイル保存の関係かとも思いましたが、その場合でしたらファイル名が変更されても変化がないような気がするんですが・・ FTPツールでファイルを既存のサーバーに送信しても変りません。 詳しい方教えて下さいませ。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>旧のファイル内容のままってことがあります。これってどうしてですか? 読み込んでいるブラウザが「以前に読んだ画像と、URLがまったく同じだから、以前に読み込んであるキャッシュした画像を表示しとこう」と言う動作をして、最新の画像を拾おうとしないからです。 >ファイル名を変更すれば、新しい内容のファイルになるんですが? 画像のファイル名を変えても「変えた後とおなじURLの画像が、もう既にブラウザのキャッシュに入っている」と言う場合は、やはり、キャッシュされていた古い画像が表示されちゃいます。 >一時ファイル保存の関係かとも思いましたが、その場合でしたらファイル名が変更されても変化がないような気がするんですが・・ ファイル名を変えた結果、URLが「まだキャッシュされてない、新しいURL」になった場合、ブラウザにキャッシュが残ってないので、新しい画像が表示されます。 しかし、ファイル名を変えた結果、URLが「偶然、以前にキャッシュしてあった、古いURLと同じ」になった場合、ブラウザにキャッシュが残っているので、サーバから拾わないで、キャッシュされていた古い画像が表示されます。 >FTPツールでファイルを既存のサーバーに送信しても変りません。 WEBページを読んでいるクライアントパソコンのブラウザのキャッシュの問題なので、サーバを弄っても無意味です。 特に、携帯電話やスマートフォンなどのブラウザは、通信量を極限まで減らそうとして「URLが同じだったら、中身が更新されているかどうかは関係無しに、常にキャッシュされていた物を表示しようとする」と言う動作をします。 パソコンのブラウザの場合は、URLが以前と同一でも、サーバが送ってくる「最終更新日」を、以前にキャッシュした日付と比較して、サーバの方が日付が新しければ中身を読み直すようになっています。 その為、サーバにファイルをアップしているFTPツールの不備や不具合で「ファイル日付が正常にサーバ上に記録されない」と言う場合、日付チェックが上手く働かず「中身を更新したのに、更新された事にならず、ブラウザがキャッシュしてあった古い画像を表示する場合があります。 良くあるのが「FTPツールのタイムゾーン設定が間違ってて、日本の時差9時間分、サーバ上の日付が狂う」と言うケース。 この場合、FTPでファイル転送した時に、ファイルの日付が9時間過去に戻ったりするので、ブラウザが「このファイルは古い」と判断して、キャッシュしてある更新前の画像を表示しちゃいます。 そういう訳で、画像のファイル名を変更して再アップする場合は「今まで一度も使った事が無いファイル名」に変更して再アップしましょう。 「今まで一度も使った事がないファイル名」ならば「絶対にブラウザのキャッシュに残って無い」ので、確実にサーバから取り直しされます。

kfjbgut
質問者

お礼

PCやスマホのキャッシュって何時間おきにしているんですかね・・

その他の回答 (3)

回答No.4

>PCやスマホのキャッシュって何時間おきにしているんですかね・・ キャッシュが更新されるのは「閲覧時、最新のものをサーバから拾ったとき」です。 それ以外ではキャッシュは更新されません。 PCのブラウザの場合、以下のような処理がされます。 1.閲覧時、ファイルを取得する前に、同じ物がキャッシュにあるかチェックする。 2.キャッシュに無い場合、サーバから最新のファイルを取得して、キャッシュに保存し、表示して終了。 3.キャッシュにあるが、一定期間以上経っていて古ければ、サーバから最新のファイルを取得して、キャッシュに保存し、表示して終了。 4.キャッシュにあるが、サーバにあるファイルの更新日を取得して、サーバの方が新しければ、キャッシュに保存し、表示して終了。 5.キャッシュにあって、サーバにあるファイルの更新日と同じであれば、キャッシュにあるファイルを表示して終了。 スマホのブラウザの場合、以下のような処理がされます。 1.閲覧時、ファイルを取得する前に、同じ物がキャッシュにあるかチェックする。 2.キャッシュに無い場合、サーバから最新のファイルを取得して、キャッシュに保存し、表示して終了。 3.キャッシュにあれば、キャッシュにあるファイルを表示して終了(サーバにあるファイルの方が新しくても、キャッシュにある古い物を表示してしまう) 但し、PCのブラウザのうち、一部のブラウザは「キャッシュの有無のみ調べて、更新日はチェックしない」ので、スマホと同様の動作をします。 その為「明示的に、キャッシュを無視して最新の情報を表示する」と言う操作をしないと、最新のファイルを表示しない場合があります。 >閲覧履歴の中に一時ファイルの削除があるんで、しましたがファイル内容は変りませんがね・・ ブラウザによっては「閲覧して、開かれたままのページ」など、特定のキャッシュは「一時ファイルの削除」では消えない場合があります。 どのブラウザを使用しているか判りませんが、質問者さんの言う「一時ファイルの削除」が「キャッシュの削除」である保証はありません。キャッシュではない、閲覧履歴の一時ファイルのみを削除している可能性があります。 こういう質問をする場合は、閲覧に使っているのがPCなのかスマホなのか、PCならブラウザは何なのか、スマホならブラウザは何なのか、ブラウザのバージョンが幾つなのか、きちんと明示しないと、的確な回答は得られません。 明示されてないと、回答する方も「推測で、あてずっぽうで答える」事になります。

kfjbgut
質問者

お礼

お気に入りからサイトをみる場合は、常に新しいサイトが表示されるんですよね・・

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 キャッシュとは簡単に言えば1回取得した画像はローカルのPCに保存しておいてそこから利用しようとすることです。 そうすることにより、ネットワーク上へ取得しに行かないので表示レスポンスやネットワーク資源の利用を節約できます。 なのでa.gifというファイルを表示してキャッシュされた場合、次にa.gifを表示するのはローカル(自分のPC)のa.gifを利用します。 次にa.gifがFTPにてアップロードされ変更されました。(ファイル名はそのままで画像は違う) しかし表示するのはローカル(自分のPC)のa.gifなので更新されてないと見えてしまいます。 ファイル名を変更すれば、それはまた違うファイルですのでキャッシュからではなくネットワーク上から取得します。 >一時ファイル保存の関係かとも思いましたが、その場合でしたらファイル名が変更されても変化がないような気がするんですが・・ だからこそです。自分のPCにキャッシュとして保存されていない画像であれば常に取りに行きますので。 キャッシュは履歴ではなく インターネット一時ファイルを削除しないとクリアされません。 またはctrlキー+F5でキャッシュを使わないで更新を実行できます。

kfjbgut
質問者

お礼

閲覧履歴の中に一時ファイルの削除があるんで、しましたがファイル内容は変りませんがね・・

  • adobe_san
  • ベストアンサー率21% (2103/9759)
回答No.1

>例えば、gifファイルの内容を変更して再度アップしても画面では >旧のファイル内容のままってことがあります。これってどうしてですか? これはキャッシュの問題。 >ファイル名を変更すれば、新しい内容のファイルになるんですが? なるけどhtmlの配置画像の名前替えないと変わらないよ。 >一時ファイル保存の関係かとも思いましたが、その場合でしたらファイル名が変更されても変化がないような気がするんですが・・ 当たり前の話。名前替えたらhtmlの画像名も変えないと意味がない。

kfjbgut
質問者

お礼

1 ネットでキャッシュを検索しましたがチョット意味が分かりませんでした。 この場合、変更したファイルを確認しようと思えば「閲覧履歴の削除」をすればいいのかと思って削除しましたが駄目でした・・ 2 画像名の変更は承知しています。

関連するQ&A