日進市立図書館は努力家である件について

ちょっと前にホッテントリに入ってた、日進市立図書館Amazon アフィリエイトについて。

今さら反応してアレだけど、さっき過去のホッテントリチェックしたんだから仕方がない。
私が知っている日進市立図書館の努力について。
Amazon Web Services Developer Community : 紹介料について ...より一部引用:


紹介料について
Posted: Oct 11, 2008 11:40 PM PDT

アフィリエイトの紹介料に関する質問です。
現在、アフィリエイトのリンクを張っていますが、クリック数や、注文数がカウントされません。
リンクを張っている場所へのアクセス方法は以下のようになります。
1.http://lib.city.nisshin.lg.jp/ にアクセスする。
2.フレームの左側の蔵書検索欄に書名を入力し、検索する。
3.フレームの右側に表示される検索結果一覧からタイトルをクリックして、詳細画面を表示する。
4.詳細画面の左側にアマゾンへのリンクを用意しているので、そのリンクをクリックする。
5.カートに入れて購入する。
以上のような手順です。

これは Amazon Web Services (AWS) のディスカッションボードの一記事だ。AWS にはクラウド・サービス (Amazon EC2) なんてのも含まれるが、日本語フォーラムはほとんど A2S (Amazon Associates Web Service) がらみの質問ばかりだ。つまり、アフィリエイト関係。
そんなところで、地方公共団体を示す「lg.jp」のアドレスを見て興奮しなかったといえばウソになります。だけどすぐに「公立図書館も予算的に大変なんだろうなあ、そんななか、こうやって努力してるんだな」と肯定的にとらえ、興奮した自分を恥ずかしく思ったものです。公がアフィって何が悪い。全国の図書館は見習うべきだとさえ思いました。*1
図書館がより市民にサービスできるよう、アフィリエイト収益を利用するのはいいと思います。蔵書増やすのにもカネはかかるので。地元の本屋の反応が気になるけどね。
あ、注文つけるとしたら、「アフィリエイト収益が何に使われる予定か」をサイト内に記述してほしいかも。図書購入費に充てられます、とか書いてあったら応援する人も出てくるんじゃないかな。

とここまで書いて

続き記事に気づいた。
論議となりそうだ」ってのは、公がアフィとはけしからん!みたいな話かと思っていたら違ったのですね。何故 Amazon を利用するか、が問題か。
現状だと A2S が一番敷居が低いから利用したんじゃなかろうか。実験的に始めるなら、参加しやすく脱退しやすい方がいい。「とりあえず」始めてみるには Amazon アソシエイトは最適だと思う。個人サイト規模からニコニコ動画規模まで使用実績があるので、サイト規模によらず利用できる、とわかっているのもありがたい。
で、しばらくはこのまま続けていいと思う。おそらくは 10 月ぐらいから始めた Amazon でのアフィリエイトをしばらく続け、様子を見てから広告枠を売りつけを検討しても遅くはないと思う。

*1:個人で着服してるなら、話は別だ。マイレージ貯める、みたいなかわいさじゃないから

Firefox だと沖縄県警サイトが悲惨になる件について

Firefox沖縄県警のサイトを見てみましょう。たぶん悲惨なことになっていると思います。縮小キャプチャを以下にあげておきます。


▲左:Firefox3 右:IE7 (沖縄県警のサイトTOPのキャプチャ(部分・縮小))
IE など他のブラウザだとキレイに見えるのに、なぜ Fx では悲惨なことになるのでしょうか?

原因の推測

スタイルシートの指定の仕方が原因かと思います。ソースを見てみます。

<link rel="stylesheet" href="css/import.css" type="text/css" media="print" />
<link rel="stylesheet" href="css/import.css" type="text/css" media="screen" />

このように同じファイル(import.css)を2度指定しています。指定されている import.css を見てみましょう。大変短いので全文引用します。

@charset "utf-8";

@import url(reset.css);
@import url(base.css);

import.css 本体ではスタイルの指定はせず、詳細が記述されている reset.css と base.css を呼び出しているだけとわかります。そしてこの @import が今回の惨事の原因です。
Firefox においては、同じ CSS ファイルを 2 回指定したとき、 1 回目は import されますが、 2 回目は import されないようです。

ですから実は

沖縄県警のサイト、崩れて見えていましたが、実は印刷すればきれいに見えます。1回目の import.css の呼び出しは、印刷用スタイルシートとしての指定だからです。CSS 指定部分のコードを再掲しておきます。

<link rel="stylesheet" href="css/import.css" type="text/css" media="print" />
<link rel="stylesheet" href="css/import.css" type="text/css" media="screen" />

一度目の media="print" での import.css の読み込みでは、実質のスタイル指定が記述されている reset.css も base.css も import されます。なので、印刷して閲覧するか、そこまでしなくても印刷プレビューで閲覧すれば整った状態で見えます。
しかし、import.css の2度目の読み込みとなる media="screen" では import されません。なので import.css は実質

@charset "utf-8";

となり、スタイルを何も指定していないことと同じになってしまいます。ですから、悲惨な見栄えになってしまうのです。

解決策1

CSS の指定を次のようにまとめる。

<link rel="stylesheet" href="css/import.css" type="text/css"
      media="print,screen" />

一度に指定してしまえばどうということはありません。

解決策2

import.css と全く同じ中身で import_print.css と import_screen.css を作成する。

<link rel="stylesheet" href="css/import_print.css" type="text/css"
      media="print" />
<link rel="stylesheet" href="css/import_screen.css" type="text/css"
      media="screen" />

中身は全く同じでも、指定するファイルさえ異なればどうということはありません。

それで・・・

専門家じゃないので、同じファイルを 2 度指定することが悪いのかどうかわかりません。サーバにやさしくなさそうなのはわかりますが。
なので、問題が起こる Firefox の実装が悪いのか、サイト作成者がアレなのかわかりません。
こういう時ってどうするのがいいのかわからないので、はてダで晒してみることにしました。

追記

「2度目だとスタイルシートの指定が無効」と書かずに、import されるとかされないとかいう書き方をした件について、多少補足。
今回のような 2 重指定の場合、本当に import だけが期待通りに動かない。たとえば、今回 2 回指定されている import.css の中身が

@charset "utf-8";

@import url(reset.css);
@import url(base.css);
body{
    text-align: center;
}

のような場合、

body{
    text-align: center;
}

の部分は 1 度目(今回の例で言えば print)、 2 度目 (screen) の指定どちらでも有効。@import 〜 の部分だけが、2度目だと無視されているようだ、ということです。
なので、「2度目のスタイルシート指定は無効」とは書けず、「import はされない」と書いた次第です。