[英]How to put a picture in HTML using CGI Perl?
我正在創建一個非常簡單的HTML表單。 我已經將該表格包含在CGI文件中。 我正在使用perl腳本。 我嘗試使用以下CGI腳本在我的表單中添加圖片:
print "<img src=picture1.jpg style=width:600px;height:300px;>";
問題在於表單中的圖片沒有顯示,但是我沒有收到任何錯誤,並且當我從瀏覽器訪問表單時,其他所有東西都可以正常工作。
通過查看您的屏幕截圖,我會猜測指定為src='picture1.jpg'
的圖像源或位置不正確。
可能的原因可能是:
picture1.jpg
picture1.jpg
在另一個目錄中 我敢打賭這是第二個問題。 您的CGI腳本很可能位於名為cgi-bin
的目錄中,因此,使用src='picture1.jpg'
可以在此cgi-bin
目錄中查找圖片。
您是否真的確定圖片位於: cgi-bin/picture1.jpg
? 很有可能不會。
我猜圖片在其他地方,這意味着您必須為其設置正確的路徑,如以下示例所示:
img src='../picture1.jpg'
這意味着“向上一級目錄並查找picture1.jpg
”。
img src='../images/picture1.jpg'
這意味着:“向上一級目錄,在image
目錄中查找picture1.jpg
”。
img src='/html/images/picture1.jpg'
這意味着:“轉到您網站的根目錄,找到html
目錄,然后找到image
目錄,最后picture1.jpg
里面的picture1.jpg
。
根據服務器的目錄結構調整路徑后,該圖像應顯示在所需位置。 此外,如其他答案所述,您應始終正確設置HTML屬性的格式。
確保為屬性使用正確的格式
print "<img src='picture1.jpg' style='width:600px;height:300px;'>";
您需要在html中使用雙引號。
print q{<img src="picture1.jpg" width="600" height="300">};
表格中的圖片沒有顯示,但是我沒有任何錯誤
您在瀏覽器中沒有任何錯誤,但是您是否檢查了Web服務器錯誤日志?
您沒有說CGI程序和圖像都實際存儲在Web服務器上的位置,因此很難確定問題出在哪里,但是我希望Web服務器日志中出現錯誤,這將清除所有內容起來
如果我不得不猜測(我沒有,但是我還是要去!),我會說問題出在圖像的位置。 在Web服務器上設置CGI程序的一種常見方法是將某個目錄(通常稱為cgi-bin
)指定為包含所有CGI程序的位置。 但是實際上,這意味着您對Web服務器說:“此目錄中的所有內容都是CGI程序-每當您在此目錄中請求資源時,都需要執行該程序並將結果返回給瀏覽器”。
因此,Web服務器認為該目錄中的所有內容都是CGI程序。 這意味着您不能將圖像文件放在此目錄中。 因為如果Web服務器收到對/cgi-bin/picture1.jpg
的請求,它將認為picture
.jpg是返回圖像的程序-因此它將嘗試執行圖像文件。 那不是正常工作,並且您的錯誤日志中會出現500錯誤。
您顯示給我們的代碼是這樣的:
print "<img src=picture1.jpg style=width:600px;height:300px;>";
因為您具有src=picture1.jpg
,所以Web服務器假定圖像文件位於當前目錄中-該目錄將是包含CGI程序的目錄。 因此,很有可能這就是我上面描述的問題。
另一個選擇是您已配置了Web服務器,因此具有特定擴展名(通常是.cgi
)的任何內容都應視為CGI程序。 如果是這樣,那么我之前的解釋將不會解釋您的問題。 在這種情況下,很可能您只是錯誤地輸入了圖像文件的URL,並且在Web服務器錯誤日志中將收到404錯誤。
但是在兩種情況下,Web服務器錯誤日志中幾乎肯定會有更多有用的信息在等您。 請查看那里,並將詳細信息添加到您的問題中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.