2 Stimmen

Warum werden die in der cgi-Seite enthaltenen Bilder nicht im Browser angezeigt?

Ich hoffe, es geht allen gut. Ich stehe vor einem Problem bezüglich der Bilder. Ich habe eine CGI-Seite, d.h. Login.cgi, in den HTML-Abschnitt habe ich einige Bilder eingefügt, aber einige werden angezeigt und andere nicht.

Hier ist der Code:

       #!C:\perl\bin\perl.exe
      use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
      use strict;
      print "Content-type: text/html\n\n";

      print <<END2;
      <html>
      <head><title>LOGIN</title></head>
      <body>
         <table>
           <tr>  
            <td background="C:/Program Files/Apache Software Foundation/Apache2.2/cgi-
               bin/template_3/images/login2222.PNG" style="height: 135px; width:
                 100px;">
              <img src="C:/Program Files/Apache Software Foundation/Apache2.2/cgi-
                   bin/template_3/images/ineer-top-left.gif"/>
             </td>
           </tr>
       </table>
      </body>
     </html>
     END2

Bei diesen beiden Bildern wird das "Hintergrundbild" des td-Tags richtig angezeigt, aber nicht das Bild innerhalb von td.

Eigentlich, habe ich versucht, den Inhaltstyp in "image/gif" zu ändern, aber das hat nicht funktioniert. Ich habe versucht, den src in "../template_3/images/ineer-top-left.gif" oder etwas Ähnliches zu ändern "~/template_3/images/ineer-top-left.gif", aber es hat nicht funktioniert.

Wenn ich mit der rechten Maustaste auf das Bild im Browser klicke und die Eigenschaften überprüfe, erscheint TYP: nicht verfügbar GRÖSSE: nicht verfügbar ABER die ADRESSE (URL) ist korrekt. Kann mir jemand bitte helfen, die Lösung zu finden.

4voto

Ben Taitelbaum Punkte 7222

Da Sie dieses CGI aufrufen, müssen Sie einen Webserver betreiben (Apache?), also nehme ich an, dass Sie über localhost darauf zugreifen. In diesem Fall sollten Sie einen relativen Pfad wie "/cgi-bin/template_3/images/ineer-top-left.gif" oder einen absoluten Pfad wie "http://127.0.0.1/cgi-bin/template\_3/images/ineer-top-left.gif" anstelle eines Ortes in Ihrem Dateisystem verwenden. Möglicherweise müssen Sie ein wenig damit spielen, wo Sie die Bilder speichern und wo sich das Stammverzeichnis Ihrer Website befindet.

0 Stimmen

Danke für die Antwort, ich habe versucht, beide Wege zu geben, d.h. Relativ und Obsolut, aber immer noch das gleiche Problem bleibt bestehen.

1 Stimmen

Wenn Sie den relativen oder absoluten Pfad zu dem Bild in Ihren Browser eingeben, sehen Sie es dann dort? Wenn nicht, könnte es ein Problem mit den Dateiberechtigungen sein, ein falscher Pfad oder Ihr Server ist so eingestellt, dass er nur cgi-Dateien aus dem cgi-bin-Verzeichnis bereitstellt (es ist ohnehin ratsam, Bilder in /images abzulegen).

0 Stimmen

Ja, das bedeutet, dass es keine Bilder aus dem cgi-bin-Verzeichnis ausliefert. Verschieben Sie es in ein /images-Verzeichnis (mit demselben Parent wie das cgi-bin-Verzeichnis) und versuchen Sie, dort darauf zuzugreifen.

3voto

Dave Cross Punkte 65470

Erstens: Die URLs, die Sie für Ihre Bilder angeben, müssen echte URLs sein und keine Dateipfade.

Und zweitens ist Ihr Webserver wahrscheinlich so konfiguriert, dass er alles, was sich im Verzeichnis cgi-bin befindet, für ein CGI-Programm hält. Das heißt, wenn Sie ihm eine URL geben, die auf dieses Verzeichnis verweist, wird der Webserver versuchen, das Programm auszuführen, anstatt den Inhalt direkt zu liefern. Sie sollten statische Inhalte (wie Bilder) aus dem cgi-bin-Verzeichnis auslagern.

0 Stimmen

Muss ich irgendwelche Änderungen in htdoc vornehmen?

0 Stimmen

Sie müssen die Bilder aus dem cgi-bin-Verzeichnis in das Verzeichnis verschieben, in dem Sie den Rest des statischen Inhalts Ihrer Website speichern.

1voto

Manoj Kumar Punkte 11

Ich hoffe, das funktioniert

  #!C:\perl\bin\perl.exe
  use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
  use strict;
  print "Content-type: text/html\n\n";

  print '
  <html>
  <head><title>LOGIN</title></head>
  <body>
     <table>
       <tr>  
        <td background="../login2222.PNG" style="height: 135px; width:
             100px;">
          <img src="../ineer-top-left.gif"/>
         </td>
       </tr>
   </table>
  </body>
 </html>
 ';

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X