Запустите HTTP-сервер Hypnotoad для обслуживания страницы XHTML

У меня была небольшая проблема с обслуживанием точечной xhtml страницы с помощью hypnotoad.

файл xhtml начинается следующим образом, так что, возможно, я не объявляю что-то, что позволило бы hypnotoad отображать его как что-то отличное от текста, когда я направляюсь на порт localhost 8080.

<?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.

Любая помощь будет оценена.

1 ответ

Решение

Я не слишком знаком с 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');}
}

Я не уверен, что Perl равнозначен PHP include('file.pl'); было бы, хотя вы хотите хорошую структуру.

_0_header_0 // Ваш основной файл заголовка, который, так сказать, запускает дерево включений.

_0_header_1_base // Определяет относительный и абсолютный путь для ОБА локального / оперативного сервера, поэтому ТОЧНЫЙ код работает на локальных / оперативных серверах.

_0_header_2_sql // Подключитесь к вашей базе данных, чтобы иметь возможность получать контент.

_0_header_3_sessions // Сессии, например, зарегистрированные участники / admins / etc, должны обрабатываться на этом этапе.

_0_header_4_classes // Установите ваши классы программирования здесь.

_1_functions_date // Функции всего сайта, такие как преобразование эпохи Unix в удобочитаемую дату, другие функции и т. Д....

_2_include_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_include_06_base // Используйте базовый элемент, чтобы установить базовый путь по умолчанию.

_2_includes_07_css

_2_include_08_js // Никогда не помещайте JavaScript в элемент body, иначе у вас будет ужасный беспорядок.

_2_includes_09_body

...

Я также не знаком с HTTP-сервером Hypnotoad (хотя я получаю ссылку на Futurama). В идеале вы хотите делать то, что сродни переписыванию Apache, и контент обслуживается основными обработчиками. По сути, файл в другом каталоге иногда будет обслуживать контент, для которого нет реального каталога, по крайней мере, для пользовательских страниц. Когда вы установили модули (например, блог, электронная почта, форумы), вы просто переместили туда файлы основного обработчика.

Это общий подход, к которому я мог бы потратить часы, хотя это скорее направление. Я делал отдельные файлы с кучей включений, и мне было неудобно работать с такими базами данных, как неспособность быстро скопировать папку и сказать, что сайт был скопирован. Пока у вас есть хорошая система резервного копирования, создайте такой подход, как новая версия, и попытайтесь разбить ее на более мелкие версии. Когда у вас есть принципиально другой подход к кодированию, вполне нормально иметь версию, которую можно выпустить от нескольких месяцев до года или двух. Просто продолжайте дорабатывать его снова и снова и снова и добивайтесь высоких стандартов (например, XHTML как application/xhtml+xml с Firefox (так как другие браузеры не будут скрывать страницу и сообщать вам об ошибке). общий подход, и теперь у меня есть своя собственная веб-платформа, которая может кружить вокруг всех других платформ, которые я видел для того, чтобы делать то, что мне нужно, что я хочу и буду делать в конечном итоге.

Другие вопросы по тегам