gpt4 book ai didi

html - 为 cgi.pm 文件添加 css

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:20 25 4
gpt4 key购买 nike

我已经在 html 的 cgi 文件中编写了这段代码,但它在 xampp 服务器中显示内部服务器错误。当我在命令行中编译它时,结果只显示“无调试”。我做错了什么?代码在没有包含 css 部分的情况下工作正常,但一旦我添加链接部分,它就会停止工作。

 #!"c:\xampp\perl\bin\perl.exe"
use strict;
use warnings;
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser);
#use CGI ('div');
use CGI qw/Link/;

my $q = new CGI;

print $q->header,

$q->start_html
({
-title=>'Input Request',
-head=>Link({-rel => 'stylesheet',
-media => 'print',
-type => 'text/css',
-href => 'style.css'}),

}),

print $q->div(
{-id=>"divtop"},
$q->p("Here's a paragraph")
);
$q->start_form
(
-method=>'post',
), "\n",

"Operating System",

$q->radio_group
(
-name=>'ostype',
-values=>['Windows','Linux'],
),
$q->br, "\n",
$q->end_html;

最佳答案

运行您的代码后,问题就很明显了。这是它输出的第一行...

<div id="divtop"><p>Here's a paragraph</p></div>Content-Type: text/html; charset=ISO-8859-1

“Content-Type:” header 应该是绝对从您的CGI 脚本中出来的第一件事。任何其他内容,您的网络服务器将不知道如何处理输出。

看起来您对代码中的分号和逗号感到困惑

print $q->header,

$q->start_html
({
-title=>'Input Request',
-head=>Link({-rel => 'stylesheet',
-media => 'print',
-type => 'text/css',
-href => 'style.css'}),

}),

print $q->div(
{-id=>"divtop"},
$q->p("Here's a paragraph")
);

用逗号连接这 3 个语句意味着代码 print正在 <div>发生并且返回值被添加到第一个 print 正在打印的事物列表中.

整理一下,您的代码应该如下所示。标题行排在第一位,它本身只是一个语句。

print $q->header;

我真的不知道那一堆乱七八糟的 CGI HTML 代码是什么样的,所以我不会尝试修复它,尽管我认为它应该只是一个长逗号分隔的语句.你真的应该看看更好的东西,比如模板工具包。相比之下,即使只是打印出原始 HTML 也会更容易阅读 IMO。

此外,为了涵盖所有基础,您的脚本的第一行似乎在前面有一个空格 - 如果它确实存在并且不仅仅是复制'n'粘贴错误,这也会导致问题。

 #!"c:\xampp\perl\bin\perl.exe"

关于html - 为 cgi.pm 文件添加 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com