0

我在使用 hypnotoad 提供点 xhtml 页面时遇到了一些问题。

xhtml 文件是这样开始的,所以当我转到 localhost 端口 8080 时,也许我没有声明允许 hypnotoad 将其显示为文本以外的其他内容。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="http://www.w3.org/1999/xhtml; charset=utf-8" />
        <title>
            Index
        </title>
        <link rel="stylesheet" href="book.css" type="text/css" />

当我只是在没有中间服务器的情况下在本地打开页面时,它在 Firefox 中呈现良好,但是当我创建一个 myapp.pl 并将其以 public 的名称粘贴在一个子文件夹中时,它会提供它但仅作为文本端口 8080。

任何帮助,将不胜感激。

4

1 回答 1

0

我对 Perl 不太熟悉,当然不是标题,尽管您可以尝试以下...

require HTTP::Headers;
$h = HTTP::Headers->new;
$h->header('Content-Type' => 'application/xhtml+xml');

当然,您需要通过客户端的接受标头检查客户端是否支持 XHTML。请记住,Microsoft 认为 IE7 确实支持. 这与事实相去甚远。

我在我的站点上将 XHTML 作为 application/xhtml+xml 提供并使用 PHP,所以如果你熟悉它Perl,这可能有助于更容易地桥接它......

if (isset($_SERVER['HTTP_ACCEPT']))
{
 if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml'))
 {
  header('Content-Type: application/xhtml+xml');
 }
 else {header('Content-Type: text/html');}
}

include('file.pl');尽管您想要良好的结构,但我不确定 Perl 与 PHP 的等价物是什么。

_0_header_0 // 启动包含树的主头文件,可以这么说。

_0_header_1_base // 确定本地/实时服务器的相对和绝对路径,以便完全相同的代码在本地/实时服务器上运行。

_0_header_2_sql // 连接到您的数据库以获取内容。

_0_header_3_sessions // 此时应处理会话,例如登录的成员/管理员/等。

_0_header_4_classes // 在这里建立你的编程类。

_1_functions_date // 站点范围的函数,例如将 Unix Epoch 转换为人类可读的日期,其他函数等...

_2_includes_01_xml // 此时您无法再发送标头。

_2_includes_02_dtd

_2_includes_03_head

_2_includes_04_title

_2_includes_05_meta_0

_2_includes_05_meta_01_description

_2_includes_05_meta_02_keywords

_2_includes_05_meta_03_language

_2_includes_05_meta_04_robots

_2_includes_05_meta_05_redirect

_2_includes_06_base // 使用基本元素设置默认基本路径。

_2_includes_07_css

_2_includes_08_js // 永远不要把 JavaScript 放在 body 元素中,否则你会搞得一团糟。

_2_includes_09_body

...

我也不熟悉 Hypnotoad HTTP 服务器(虽然我得到了 Futurama 参考)。理想情况下,您想做类似于 Apache 重写的操作,并让内容由主处理程序提供服务。本质上,另一个目录中的文件有时会提供内容......没有实际目录,至少对于自定义页面。当您建立模块(例如博客、电子邮件、论坛)后,您只需将主处理程序文件移至该模块。

这是一种通用的方法,我可以花几个小时来了解它,尽管它更多地是作为一个方向。我正在处理包含大量包含的单个文件,并且由于无法快速复制文件夹并说网站已备份等原因,我对数据库之类的东西感到不舒服。只要您有一些良好的备份系统,就可以构建一个新版本这样的方法,并尝试将其分解为更小的版本。当你确实有一个根本不同的方法代码明智时,可以有一个可能需要几个月到一两年才能发布的版本。只需一遍又一遍地改进它,并推动自己达到高标准(例如,XHTML 作为应用程序/xhtml+xml 与 Firefox(因为其他浏览器不会隐藏页面并直接给你错误)。

于 2014-08-19T06:41:37.053 回答