楽天のネットショップを構築するときに、通常は楽天RMSという楽天の更新システムで更新をするのですが、「楽天GOLD」というサービスに申し込めば楽天のFTPサーバを使うことができるようになり、そこにCSSや画像なんかをおいて利用することができます。楽天RMSだけでは外部CSSを使えなかったり、タグに制約があったり、画像も管理画面からチマチマ上げないといけなかったりと不便が多いので、楽天GOLDはすごく便利です。
しかし、一つ重大な欠点が。それは画像のキャッシュが強すぎること。HTMLファイルやCSSファイルはアップロードするとすぐに更新が反映されるのに、画像はなかなか更新されません。削除しても普通に表示されたりします。ぐぐってみると、被害に遭っている方がちょこちょこいる模様。
楽天GOLDのFTPサーバーなんなの?キャッシュ更新されないんだけど。なにこれ???え? ん?
— 星野テルカズ(MTX)さん (@tasknow) 3月 24, 2011
2chにもスレが。
最近ゴールドのサーバー・・・おかしくない?
画像だけ変えたい場合って、同じファイル名で上書きすれば良いのだけど(当たり前)
最近楽天のゴールドのサーバーは、上書きしても画像が変わらない。
キャッシュを読んでいるのかと思ってブラウザの一時ファイルを削除しても駄目。
他のパソコンで見ても間違い無く変わっていない。通常、上書きアップロードしたら即画像が変わるのが当然なのだけど、
楽天のゴールドは、20分~30分、遅い時は2~3時間掛かる事もある。試しに、そのファイルを削除して、そのファイルのアドレスに直接アクセスすると
画像がエラーにならずに”ある”一体どうなっているんだ!
試行錯誤していて解決策が見つかりました。僕の場合、以下のような感じでCSSで背景画像を指定していたのですが、何度back.gifをアップロードしても反映されないわけです。
#container { background-image : url( '/gold/images/common/back.gif' ); }
で、こういうふうに修正。
#container { background-image : url( '/gold/images/common/back.gif?d=201202102020' ); }
画像ファイルの後ろに引数をつけると解決。ブラウザのキャッシュに悩むときはよくやりますが…。ちなみに、この状態でまた引数を外すと昔の画像がでます。どういう仕様なんだろうこれ?