html - 为 cgi.pm 文件添加 css

标签 html css perl cgi.pm

我已经在 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/

相关文章:

html - 在 asp.net mvc 中滚动没有滚动条的 Div?

javascript - Bootstrap 导航栏汉堡菜单不起作用

html - Firefox 根据操作系统使用不同的内置样式表?

css - 向 Angular Material 工具提示箭头添加阴影

css - 是否可以看到因为更改 Chrome 中的 css 类而发生的所有更改?

arrays - 检查二维数组是否完全为空 perl

javascript - 如何使用 Vue.js 设置和获取输入组件的值?

html - CSS 中的 wordpress 3.3 相对路径

perl DBIx sqlite {sqlite_unicode=>1}?

database - Perl - SQLite3 数据库加密