• ベストアンサー

画像が表示されません

Perlを勉強はじめたばかりの初心者です。 print "テスト画像<BR><IMG SRC=\"test.gif\">"; というcgiをブラウザで見ると、「テスト画像」という文字は表示されるのですが、画像は×になってしまいます。 画像はcgiと同じ階層にあります。 環境はMac OSX(10.28)でパーソナルwebをオンにしてローカルでテストしています。 宜しくお願いします。

  • CGI
  • 回答数4
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • jun2004
  • ベストアンサー率42% (24/57)
回答No.4

CGIディレクトリ以下は画像が読めない場合があります。(設定にもよりますけど・・) 手っ取り早くCGI-Executables以外に画像を置いてみてはどうでしょうか。

undisco
質問者

お礼

CGIを置く場所を/User/Site/cgi-binに変更したら画像も表示されるようになりました。 どうも有難うございました。

その他の回答 (3)

  • jun2004
  • ベストアンサー率42% (24/57)
回答No.3

CGIのURLが http://localhost/cgi-bin/hoge.cgi 画像のURLが http://localhost/test.gif の場合は、 SRC=\"../test.gif\" と記述する必要があります。 CGIと画像のURLを確認してみてください。

undisco
質問者

補足

CGIと画像はCGI-Executablesにあります。 CGI-Executablesにフォルダ「img」を作って、 SRC=\"img/test.gif\" と場所を変えたりしてみたのですが解決されませんでした。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

画像を確認してみましょう。 ×が付いている画像を右クリックしてプロパティーを開きます。 (Macだから右クリックはないか。Winのやり方しかわからないので、適宜Macの操作に置き換えてください) そうすると画像のURLが表示されます。 それを直接開いて見てください。 http://127.0.0.1/xxx/test.gif とアドレスバーに打ち込む(コピー&ペースト) 画像は表示されますか? 表示されない場合は何かがおかしい。 表示される場合は設定がおかしいのかも。

undisco
質問者

補足

直接画像を見ると、 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. というエラーが表示されます。

  • naoto0314
  • ベストアンサー率34% (25/73)
回答No.1

標準設定のAPACHEだとpublic_htmlに画像を入れなきゃいけないとかあるようです。 Apacheは使っていないので詳しい設定はわかりません…

undisco
質問者

補足

HDを検索してみましたがpublic_htmlというファイルもフォルダもないのですが、public_htmlというフォルダを作ってそこに画像を入れるということでしょうか? ApacheもCGIを勉強するために初めて知ったくらいなのでよくわかりません。

関連するQ&A

  • 画像ファイルが崩れる

    Perlで、CGIを作成しています。 GIF画像をCGI経由で表示させようと思っているのですが、なぜか、画像が崩れてしまいます。GIFだけではなく、Jpegでも同じです。しかし、HTMLファイルの <img>タグでそのまま表示させようとすると、きちんと表示します。 どのようにすれば、崩れを抑えられますか? CGIソース---------------------- #!/usr/local/bin/perl $imgsrc="number/0.gif"; print "Content-type:image/gif\n\n"; open(IMG,$imgsrc); binmode(IMG); print <IMG>; close(IMG); -----------------------------EOF HTML---------------------------- <html> <head> </head> <body> <img src="cgi/image.cgi" width="28" hegiht="31"> </body> </html> ------------------------------EOF gif画像は、 http://www.akikobrand.com/icon/img/10/6/0.gif を使わせていただきました。(個人的な使用です)

    • ベストアンサー
    • CGI
  • 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が表示されないのかお教えください。

    • 締切済み
    • CGI
  • カウンターの画像が表示されない

    無料カウンターの画像が「×」になります perlパスはusr/bin/perlです。 indexと同じ階層にdaycounterのフォルダをおきました。パーミッションはサーバーの方が HTML画像ファイル604 CGI実行ファイル700 CGIデータファイル600 .htaccessファイル604 ディレクトリ705 index.html ┃ daycounterフォルダ(755)   ┃   img1フォルダ(701)━gif画像(604)   ┃   img2フォルダ(701)━gif画像(604)   ┃   cgi-lib.pl(600)   ┃   counter.html(604)←使用しないそうです   ┃   daycounter.cgi(700   ┃   daycounter.dat(600)   ┃   gifcat.pl(600) そこのapeboardの設置を参考にしました。 http://www.lolipop.jp/?mode=faq&state=detail&genreid=6&faqid=000120 imgフォルダだけバイナリで転送してあります。 カウンターのソースは <IMG src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=total"><P> 本日:<IMG align="absmiddle" src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=today">  昨日:<IMG align="absmiddle" src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=yesterday"> です。

    • ベストアンサー
    • CGI
  • ホームページ作成で画像が表示されません

    すみません、初心者でよく分かりません。 HPの作成練習中なのですが、ブラウザで確認すると画像が×(バツ)のまま表示されません。 ファイル名やパスの打ち間違いは確認したのですが、他に何を確認したら解決しますでしょうか。 (ちなみに他のページでは表示されます。) 下記書いた内容です。 <BODY bgcolor="lightgreen" background="image/壁3.jpg"> <center> <IMG SRC="image2/tis12-g-top.gif"><BR><BR> <IMG SRC="image2/tis12-g.gif"><BR><BR> <IMG SRC="image2/tis12-g-diary.gif"><BR><BR> <IMG SRC="image2/tis12-g-bbs.gif"><BR><BR> <IMG SRC="image2/tis12-g-links.gif"><BR><BR> <IMG SRC="image2/tis12-g-mail.gif"><BR><BR> </center> </BODY> どうそよろしくお願い致します。

  • perlで画像表示

    htmlファイルから<img src="./aa.cgi">と書いて連続した画像を表示させたいのですが @aa =(1,2,3); foreach(@aa){ open(IMG, "./$_.gif"); binmode(IMG); binmode(STDOUT); print "Content-type: image/gif\n\n"; read(IMG, $img, 1024); print $img; close(IMG); } こう書いたらだめなのでしょうか?

    • ベストアンサー
    • Perl
  • htmlからテキストを返すperlを実行する方法

    アクセスカウンターの数字画像を出力するperlのcgiを、<img>タグで、 <img src="./counter.cgi"> と、呼び出す方法があると思いますが、これと同じように、画像ではなくテキストを出力するperlのcgiをhtml中に呼び出して、ブラウザに表示する方法はないでしょうか? 以下のような感じかと漠然と思ったのですが、やはり上手くいくはずはありませんでした。 ■cgiプログラム(test.cgi) #!/usr/bin/perl print "Content-type: text/plain\n\n"; print "TEST TEXT"; exit 0; ■htmlファイル <html><head></head> <body> <br> <hr> <object data="./test.cgi" type="text/plain"></object> <hr> </body> </html> perlもhtmlも独学で学んだ基礎レベルだと自分で思っています。 どなたか突破口となるヒントをお願いします。

    • ベストアンサー
    • Perl
  • 変数名で付けた画像の表示方法

    初心者ですよろしくお願いします 画像をforで回し表示いたいのですが以下3方法試しましたがいずれもうまく表示されません  Perlは文字列と数値が私にとってあいまいなので----と言うかそれ以前の問題ですね HTMLに変数名を入れても無理ですね今気がつきました cgiで画像を表示するのはどうしたらよろしいでしょうか?ご指導お願いします $kaku =".gif"; @bb = ( "0.gif","1.gif","2.gif","3.gif","4.gif"); for($i=0; $i<=$#file; $i++){ $jj=$i.$kaku; $jjj=length($jj);  #レングス5になってました print "<img src=\"$jj\" width=\"55\" height=\"35\">\n"; print "<img src=\"$bb[$i]\" width=\"55\" height=\"35\">\n"; print <<EOM; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <img src= "$jj" width="55" height="35"> EOM }

  • PerlのCGIの中で画像表示(html)

    PerlのCGIスクリプトの中で<img src="">タグで画像を表示させようとしても 表示されません。 URLは間違っていないと思います。ためしに同じディレクトリに画像を持ってきてもダメでした。 [ソース 部分] print << "HTML_1"; <tr> <td><img src="./test.jpg"></td> </tr> ・ ・ ・ HTML_1 ; どういう原因が考えられるでしょうか? また、同じようなことが以前にあった方、解決方法などお願いします。

  • 画像が表示できません。

    print "Content-type: image/gif\n\n"; open(IMG,"./1.gif"); $img =(IMG); close(IMG); print $img; 画像ファイル "http://0.0.0.0/a.cgi" は壊れているため、表示できませんでした。 となり表示ができません。

    • ベストアンサー
    • Perl
  • 画像を縦に並べたら隙間ができることについて

    画像を縦に並べたところ隙間ができてしまいます。 隙間無くくっつけたいのですがどうすればいいのでしょうか。 以下htmlです。 <img src="img/nakama_img01.gif" width="687" height="227" alt="画像1" /><br /> <img src="img/nakama_img02.gif" width="687" height="197" alt="画像2" /><br /> <img src="img/nakama_img03.gif" width="687" height="244" alt="画像3" /> <br />で改行せずくっつけてタグを並べても同じ結果でした。 よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう