CGIファイルでfavicon.icoでお気に入りアイコンを
乗せようとしましたが、エラーになりました。
記述は以下です。
sub do_read {
print "Content-type: text/html\n";
print "\n";
print "$doctype\n";
print "<HTML>\n";
print "<HEAD>\n";
print "$contenttype\n";
print "<TITLE>$title</TITLE>\n";
print "<LINK REL="SHORTCUT ICON" href="favicon.ico">\n";
print "</HEAD>\n";
::::::::::::::::::::::::::::::::::::::::
print "<LINK REL="SHORTCUT ICON" favicon.ico">\n";
perlではfavicon.icoは使えないのでしょうか?
使えるとすればどのように記述すればよいのでしょうか?
No.2ベストアンサー
- 回答日時:
試しに以下のようなperlをcgi経由で呼び出してみましたが、
ちゃんとfaviconは表示されていました。
(favicon.icoはcgiファイルと同一ディレクトリ)
うまくいかない原因は、
favicon.icoのアクセス権(パーミッション)が適切でない
ということが考えられますが、それ以外だとちょっと分からないです。
--------<ここから>--------
#!/usr/bin/perl
print "Content-type: text/html\n";
print "\n";
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n";
print "<LINK REL=\"SHORTCUT ICON\" href=\"favicon.ico\">\n";
print "\n";
print "<TITLE>AAA</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "BBB\n";
print "</BODY>\n";
print "</HTML>\n";
--------<ここまで>--------
回答ありがとうございました。お礼おそくなりました。こんなにできないとサーバーが原因のようです。ぷらら。ほかのCGIサーバーじゃない方はちゃんとできているのですが、CGIサーバーはfaviconを受け付けないのでしょうか?サポートに聞いたところそんなことはないらしいのですが・・・。まだできていませんが一旦締め切らせて頂きます。また質問する機会があると思うのでよろしくお願いします。
No.3
- 回答日時:
>CGIサーバー上ではfavicon.icoが表示されないのです。
>別のサーバー上(純粋なHTML)では上記のように記述して表示されています。
cgi用とhtml用が分かれている設定のサーバーでは、cgiで出力したページに表示させる画像はhtml用サーバー側に置いて、http:からhtml用サーバー名を指定する必要があります。
favicon.icoといえども同じです。
お礼おそくなりました。回答ありがとうございました。やはりルートディレクトリとかの問題みたいですね。まだできていません。サーバーを今後移す予定なのでそれでもできなかったら再度質問させていただきます。
No.1
- 回答日時:
> perlではfavicon.icoは使えないのでしょうか?
この場合perlはhtmlを出力しているだけなので
htmlでできることは同じhtmlをperlで出力すればできます。
(perlでfavicon.icoを使っているというより、そういうhtmlを出力している。)
今回のエラーは出力する以前の問題だと思います。
たぶんこの行が原因でしょう。
> print "<LINK REL="SHORTCUT ICON" href="favicon.ico">\n";
"(ダブルクォーテーション)から"までが文字列と見なされるので
printで出力する文字列が「"<LINK REL="」でいったん終わってしまっています。
修正は文字列内の"を\でエスケープしてください。
print "<LINK REL=\"SHORTCUT ICON\" href=\"favicon.ico\">\n";
"の変わりに'(シングルクォーテーション)を使う方法もあります。
ただシングルクォーテーション文字列内では\n(改行文字)が使えないですが。
回答ありがとうございました。
ズバリその記述方法で解決したかのようでしたが、
別の問題が浮上してしまいました。
CGIサーバー上ではfavicon.icoが表示されないのです。
別のサーバー上(純粋なHTML)では上記のように記述して
表示されています。
PERLでも表示されるはずですよね?
そのCGIを起動させたHTMLが↓です。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<script type="text/javascript">
<!--
image = new Image();image.src = "favicon.ico";
// -->
</script>
<LINK REL="SHORTCUT ICON" href="favicon.ico">
<TITLE>WN</TITLE>
</HEAD>
------------------------------------
<LINK REL="SHORTCUT ICON" href="favicon.ico">
だけではダメだったので、javascriptを使ったり、
favicon.icoのURLを絶対記述させたりもしてみましたが、
ダメでした。内部エラーではなく、faviconが表示
されません。faviconのファイル名も変えたりも
してみました。
使っているブラウザーはIE6.0以上です。
なにか考えられる原因や対策があれば教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進の10進変換について
-
関数「exists」と「defined」の...
-
switch文のエラーについて
-
python3について。
-
チェックボックスのCGIへの値の...
-
pythonで演算子を変数に代入す...
-
c言語 16進数の2進数への変換
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
テーブル内でドロップダウンメ...
-
formで特定のinputを送信しない...
-
VBAでPDFのコピーとリネームを...
-
Perlで自分自身の関数名を知る...
-
Perlからメール送信で文字化け
-
<SELECT>タグの折り返し
-
子windowsからsubmit()後にclos...
-
コンボボックスのtag情報の取得...
-
エクセルVBA シート名の部分一...
-
Sendmailの文字化けについて
-
sendmailで本文が文字化けします
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
16進の10進変換について
-
pythonで演算子を変数に代入す...
-
【至急!!!】python言語で本を見...
-
pythonの*
-
c言語 16進数の2進数への変換
-
awkの正規表現での最左最短マッ...
-
数値かどうかの判定方法
-
関数「exists」と「defined」の...
-
シェルで、ランダム関数を変数...
-
I2C接続のLCDディスプレイを使う
-
シェルスクリプトで、空白(ス...
-
perでメールが送信出来ない場合...
-
UWSCのSELECT文の記述方法
-
int(input("○○"))の使い方
-
switch文のエラーについて
-
pythonで改行を含めてfindする方法
-
シェルスクリプト+perl
-
PythonでUTF8の文字列をリスト...
-
少数点以下の桁数について
-
qq!!の意味を教えてください。
おすすめ情報