• 締切済み

htmlで画像が表示されない

CGIを勉強し始めた者です。 手始めにCGIを使わずに画像表示をさせたところ早速つまづきました。 アドバイスお願いします。 vine linux 6.3 に apache2.4をソースからインストールしました。 /usr/local/apache2/htdocs に以下の cgi-test.html を置きました。 <html> <head> <meta http-equiv="Content-Type:" content="text/html; charset=UTF-8"> <title>CGI TEST</title> </head> <body> <h3>CGI TEST</h3> <img src="../cgi-bin/a0.gif">&nbsp;<img src="./a1.gif"> </body> </html> パーミッションは 755 root root cgi-test.html /usr/local/apache2/cgi-bin のパーミッションも 755 root root です。 ここに 数字0~9のgif画像を置いています。パーミッションは 644 root root 表示されないので/usr/local/apache2/htdocsにa0.gif, a1.gif を置いてみました。 パーミッションは 同じく 644 root root です。 数字0は表示されませんが、1は表示されます。 なぜ0が表示されないのかお教えください。

みんなの回答

回答No.3

もしかして、DocumetRoot(/usr/local/apache2/htdocs) に置いた gifなら表示できるのに cgi-binの下においたgifだと、HTMLでそのパスを指定しているのに表示できないのは、なぜか という疑問でしょうか? だとしたら、まずはapache2の設定ファイルの ScriptAlias /cgi-bin ~ の記載を確認されて下さい。 もし、ScriptAlias /cgi-bin ~ の設定がないなら cgi-bin/*gifを指定したときの ファイルを置くべき物理パスは /usr/local/apache2/cgi-binではなく DocumentRootしたのcgi-bin (/usr/local/apache2/htdocs/cgi-bin) に なります。 また、 ScriptAlias /cgi-bin /var/www/cgi-bin とか ScriptAlias /cgi-bin /usr/lib/cgi-bin になっていたり、 一応は、ScriptAlias /cgi-bin /usr/local/apache2/cgi-binと設定しているが 別のconfigファイルがあって、そっちで設定が上書きされているということもあり得ます。 この場合は、/usr/local/apache2/cgi-binとなるように、設定を変更する必要があります。

junh1109
質問者

お礼

アドバイスありがとうございました。 DocumentRootより上位のDirectoryを指定している ことに気づいておりませんでした。 おかげさまでCGIの勉強が進みます。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

a0.gif と a1.gif のパスが違いますが、別々のディレクトリに置いているのですか? もし、同じディレクトリに置いているのであれば、a0.gif のパスを修正しましょう。

junh1109
質問者

お礼

アドバイスありがとうございました。 DocumentRootより上位のDirectoryを指定している ことに気づいておりませんでした。 おかげさまでCGIの勉強が進みます。

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.1

a0.gifがcgi-binフォルダにあると指定されていますが? a1.gifと同じフォルダにあるんですよね? だったら./a0.gifとすればいいだけだと思いますけど。

junh1109
質問者

お礼

アドバイスありがとうございました。 DocumentRootより上位のDirectoryを指定している ことに気づいておりませんでした。 おかげさまでCGIの勉強が進みます。

関連するQ&A