Подача html-файла в Erlang Cowboy, но он отображается как текст

Я пытаюсь обслуживать динамически сгенерированную html-страницу с помощью Erlang Cowboy, но в Firefox 14.0.1 она отображается как текст.

Вот тип документа и начальные теги заголовков, скопированные из исходного кода страницы браузера:

<DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html;charset="UTF-8"><title>Welcome!</title>
<link href="css/bootstrap.css" rel="stylesheet">
yada yada

Если я оставлю тип документа, он будет отображаться так, как предполагалось.

Bootstrap Scaffolding (http://twitter.github.com/bootstrap/scaffolding.html) требует тип документа html.

Я не уверен, что это проблема с моим html или моей конфигурацией Cowboy.

Вот соответствующая часть Dispatch в _app.erl:

   {['...'], cowboy_http_static,
       [ {directory, {priv_dir, cw, []}},
           {mimetypes, [  {<<".css">>, [<<"text/css">>]} ]}

Может кто-нибудь показать мне ошибку моего пути?

Большое спасибо,

ЛРП


person Lloyd R. Prentice    schedule 30.08.2012    source источник
comment
<!DOCTYPE html> ... с ведущим ! работает?   -  person Roddy of the Frozen Peas    schedule 30.08.2012


Ответы (2)


Я использую cowboy_static для обслуживания HTML-кода DOCTYPE, и он отлично работает с правильным типом mimetype. Отсутствует восклицательный знак: "!DOCTYPE" вместо "DOCTYPE"

<!DOCTYPE html>

См. http://www.w3schools.com/tags/tag_doctype.asp.

Изменить: Firefox и Chrome также принимают <DOCTYPE html>. Таким образом, проблема, скорее всего, в Mimetype.

person spfoos    schedule 01.10.2012
comment
Это может быть! Мой тестовый стенд Cowboy в данный момент не работает, но я попробую при первой же возможности. Большое спасибо. - person Lloyd R. Prentice; 02.10.2012

Попробуй это

{['...'], cowboy_http_static,
   [ {directory, {priv_dir, cw, []}},
       {mimetypes, [{<<".css">>, [<<"text/css">>]},
                    {<<".html">>, [<<"text/html">>]}]}
person Alexey Kachayev    schedule 30.08.2012
comment
Я так надеялся, что это был ответ. Но без игральных костей. Однако, спасибо. - person Lloyd R. Prentice; 30.08.2012
comment
Вот сообщение об ошибке от Firefox: Ошибка: кодировка символов простого текстового документа не была объявлена. Документ будет отображаться с искаженным текстом в некоторых конфигурациях браузера, если документ содержит символы, не входящие в диапазон US-ASCII. Кодировка символов файла должна быть объявлена ​​в протоколе передачи, или файл должен использовать метку порядка байтов в качестве подписи кодировки. Похоже, это указывает на проблему с конфигурацией Cowboy. Но это выше моего технического понимания. - person Lloyd R. Prentice; 30.08.2012
comment
Можете ли вы попробовать изменить содержимое вашего HTML-файла: замените заголовок Content-Type следующим: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">? - person Alexey Kachayev; 30.08.2012
comment
До сих пор нет удовлетворения. И я все еще получаю то же сообщение об ошибке. Вот первые несколько строк заголовка: ‹DOCTYPE html› ‹html lang=en› ‹head› ‹meta http-equiv=Content-Type content=text/html; charset=UTF-8›‹title›Добро пожаловать!‹/title› ‹ссылка href=css/bootstrap.css rel=stylesheet› - person Lloyd R. Prentice; 31.08.2012