2003年4月16日(水) 天気 : 晴れ

カウンタ表示不具合の意外な犯人

数日前から、新しいサーバにアップしたWebページのアクセスカウンタの表示がおかしかった。
5桁の数字を表示するはずが、1桁だったり2桁だったり、何度かリロードしてようやく5桁を表示するという具合だ。しかもこれ、Mac版のIEだけで起こる現象なのだ。

最初は、たまたまだろうと思っていたが、何度も繰り返し起こる。変なキャッシュを持ってしまったのかと思い、キャッシュも履歴も何度もクリアしたが、やっぱり起こる。
ま、世間はWinだしMacのIEだけならいいか、と思って放置しておこうとは思ったが、やっぱり気になる。
特に解せないのは、別のサーバでは問題なく表示していたカウンターだったからだ。CGIへのアクセスをURLで設定すれば、HTMLファイルがローカルにあってもきちんと表示するのだ。
このサーバが問題なのか。いや、同じレンタルサーバで同じカウンタが問題なく動いているのを知っている。

そこで、カウンター部分だけを抜き出したテストファイルを作ってアップすると、そのサーバでもちゃんと表示した。するとまず、CGIスクリプトの問題ではない。
どうやらそのページ内にスクリプトと衝突している何かがあるのだろうと踏んで、問題のページからテストファイルに一つずつアイテムを加えてアップしては表示を試していった。
ところが、問題のページとほとんど同じ内容になっても、そのテストページではカウンタがちゃんと表示されているのだ。うーむ、わからん。

では、そのファイルが壊れているのか。まるごと新規ファイルにコピーして保存し直してみた。しかしアップすると同じだった。
ならば、何だかわからないがちゃんと表示しているテストファイルを正規ファイルにしてみようと、完全に同じ内容に書き換えた。
それをまず確認の意味で、テストしていたディレクトリにアップした。正規ファイルとはディレクトリが違うので今度は画像類がリンク切れになるはずだが、カウンタが表示されれば問題ないはず。ところがここで、表示不具合が出た。

ん? 画像のリンク切れが問題なのか?
そういえばさっきも、テストファイルで一つの画像がリンク切れした時に不具合が起こったことがあった。しかしリンクを修正したら直ったし、他には問題ないはずなのだが……。
けれども念のため再度、画像リンクに注目してソースを見直した。すると、表示画面では確認できなかったが、位置調整用の1ピクセルの透明GIF画像が一つ、表示できないソースになっているのを発見。
半信半疑でそれを修正してアップすると、カウンタの表示が正常になった。何度リロードしても正常だ。

絶対に何か原因があるはずだ、との思いでようやく突き止めた犯人は、意外にも画像のリンク切れだった。
直接は関係のない画像リンクがCGIの表示に影響したのは初体験。位置的に近い画像とはいえ、カウンタはテーブルで囲んでいて直接干渉することはないと思うのだが、深いことはよくわからない。