出産前後の痔にはご注意!

先日、Webサイトの大幅な更新を行なったのですが、Google Chromeのみで、
更新したはずのスタイルシートがWebの画面に反映されておらず、
とても困った思いをしました(それ以外のブラウザは問題なく更新されてました)。
キャッシュが原因だったようですが、このキャッシュ対策は今後、htmlコーダーには
やはり必須になってくるのでしょうか?

対策として2パターン見つけはしたのですが、思ったほどどちらも使われているのを見ていません。
似たような対策で悩んでいる方がいましたら、ぜひアドバイスいただけないでしょうか?

対策1 no-chaceを使う
以下のURLに説明のある通り、no-chaceを使う
https://groups.google.com/a/googleproductforums. …

対策2 クエリーをつける
以下のサイトにあるように、クエリーをつける
http://www.koikikukan.com/archives/2011/08/29-01 …


すでに対応されている方はどちらを使っているか、対応を考えている方はどちらが良いかを教えていただけないでしょうか?

※ちなみに、当方は対策2は今のところ一件のみ、対策1は一件も見ておりません。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

最優先の選択肢(全ての文書の共通手段)。


HTTP ヘッダを触れるなら、
http://www.studyinghttp.net/caching#Expiration_M …
例えば、全くキャッシュさせないなら、
| Cache-Control:no-cache
| Pragma: no-cache

2番目の選択肢(text/html の場合)
HTTP ヘッダの代わりに meta タグでキャッシュコントロールする。

3番目の選択肢(text/css, image/png など text/html 以外の場合)
HTTP ヘッダを触れない場合の代替手段としてクエリーをつけて別の文書として認識させる。

ちなみに、このページの
http://oshiete.goo.ne.jp/qa/7174389.html
CSS の一つ、
http://gazo.okwave.jp/okwave/css/base.css
は、Tue, 06 Dec 2011 06:52:07 GMT の時点で、
キャッシュに関係する HTTP ヘッダが、
| Date:Tue, 06 Dec 2011 06:52:07 GMT
| Cache-Control:max-age=300
| Etag:"1047-4a734bce36600"
| Expires:Tue, 06 Dec 2011 06:57:07 GMT
| Last-Modified:Mon, 04 Jul 2011 02:00:56 GMT
だったから、5分後には、キャッシュが無効になるようにしているみたい。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今回はHTTPヘッダをいじることができませんので、2番目のmetaタグで対応します。

お礼日時:2011/12/16 15:07

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qiframe内の表示を常に最新にしたい

iframeを使っているのですが
中身のhtmlを変更しても
ブラウザのキャッシュが残っている為か
変更後の内容が表示されない場合が多々あります。

ブラウザの更新ボタンをクリックすれば大抵問題ないのですが・・・
これはなんとかならないものなんでしょうか?
それとも見る側のブラウザ設定がおかしいのでしょうか。

Aベストアンサー

<meta http-equiv="Pragma" content="no-cache">

これをヘッダに記載してはいかがでしょうか?
このmetaはキャッシュをしない、と言う意味を示しています

Qキャッシュは手動で更新しないといけないのか

HPを更新した際に、F5を押す等キャッシュを消さないと更新されませんが、以前見られていた方でキャッシュを更新しない方はキャッシュが残っているうちは永久的にその前の画像が表示されるということでしょうか。
そうであれば、製作者側から意図的に更新させることはできないのでしょうか。

Aベストアンサー

ここに方法が色々載ってます。
http://www.kotalog.net/archives/3516

ただ、サイト全体を常にキャッシュさせないと、
毎回すべてのファイルをダウンロードする必要があるので、どうしても重くなってしまいます。
ですので、通常はやらないほうが良いです。

また、上記のサイトに書いてないやり方として、以下のような記述方法があります。
<link rel="stylesheet" type="text/css" href="hoge.css?121003" />
<img src="hoge.jpg?121003">

「?121003」の部分がその記述で、参照するファイル名の後に「?」と適当な文字列を入れます。
今回は日付を入れています。
この部分が変われば、ブラウザは別のファイルだと認識し、キャッシュを使わずに表示させます。
この方法ですと、更新した時に更新したファイルだけキャッシュを使わず表示するので、ユーザーに優しいと思います。

Qディスク上のサイズとサイズはどうして違うんですか?

ファイルのプロパティ「全般」タブに表示されている「サイズ」と「ディスク上のサイズ」は、どっちが本当のサイズなのでしょうか?
どうしてサイズが違うのですか?
メールでファイルを送るときは、どっちのサイズを見ればいいのでしょうか?
これについて詳しく解説しているページがあったら、それもぜひ教えて下さい。
よろしくお願いします。

Aベストアンサー

「サイズ」はファイルの本当の大きさ、
「ディスク上のサイズ」はファイルが記録されているクラスタを合計した大きさです、
OSはファイルを幾つかのクラスタ(OSが管理するハードディスク上のブロック
の最小単位)を使ってHDDなどのメディアに保存します、

基本的に今のWindowsでは4KBのクラスタサイズで管理しているので例え1バイトのファイルでも「ディスク上のサイズ」4KBのサイズになってしまいます、
つまり常に「ディスク上のサイズ」の方が大きくなっているはずです、

メールに添付する場合は「サイズ」を確認するだけでOKです。

Qhtmlを更新したら、キャッシュをクリアしたい

最近会社のホームページの更新を任されるようになったのですが、
度々更新しても、更新されていないと他部署から連絡が入ってきます。

ブラウザ上で更新すると、修正した内容が表示されるため、
キャッシュの問題だと思っているのですが、どうしたら更新した時だけ
キャッシュをクリアできるのでしょうか?

metaタグについては調べました。
でも、metaタグですと、キャッシュを禁止するか、定期的にリロードをさせるか、
キャッシュの有効期限を明記するまでしか分かりませんでした。
ホームページの更新は不定期です。毎日ちょっとづつ更新することもあれば、
3か月以上放置することもあります。
なので、キャッシュの有効期限や禁止ではなく、ホームページを更新した時のみ
キャッシュをクリアしたいのです。

よろしくお願いいたします。

Aベストアンサー

クライアントのブラウザの設定によらずというのは不可能です。
例えばIEだと、新しいページがあるかを、「表示する度に確認する」から「確認しない」まで4段階ありますが、「確認しない」に設定されるとどうしようもないです。

有効期限で工夫するしないと思いますよ。あるいはユーザー教育か。

Q改行できる・できない入力ボックスの違いとは??

しょしんしゃです。
自サイトの感想フォームの入力ボックスをつくっています。

よくある「一行掲示板」みたいに、
一行のみのゲストブックとして使いたいのですが、
入力ボックス(縦の幅は1行分)の中で改行ができてしまうため、
ちょう長い、改行たっぷりのメッセージがきてしまいます。

1行しか入力できないボックスはどのように記述するのですか?
入力文字数に制限は必要ありませんが、改行させたくありません。

アドバイスください。><

Aベストアンサー

1列の幅にすると見た目は同じですが、「inputタグのtext」と「textarea」の違いではないでしょうか?

分かりやすく言いますと、たとえばここ教えてgooで回答しようとした時の「回答内容」を書くところはtextarea。
こちらは改行可能。部品の右側にスクロールバーが出ます。
記述方法は以下の通り
<textarea></textarea>
閉じタグで閉じる必要があります。


参考URLを書くところはinputタグのtextで、改行不可能です。
<input type="text">
こちらについては閉じタグはありません。


書き方についてはとても分かりやすいのが「とほほのWWW入門」さんです。
私はhtmlやjavascript、CSSなどについても趣味の延長でずいぶん色々やってみたものですが、ここが抜群に分かりやすくていつまでもお世話になりましたので、是非見てみてください。

参考URL:http://www.tohoho-web.com/www.htm


人気Q&Aランキング