在Erlang Cowboy中提供html文件,但它显示为文本

时间:2012-08-30 04:26:12

标签: html erlang cowboy

我正在尝试使用Erlang Cowboy提供动态生成的html页面,但它在Firefox 14.0.1中显示为文本。

以下是从浏览器页面源复制的doctype和初始标头标记:

<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

如果我取消了doctype,它会按预期显示。

Bootstrap Scaffolding(http://twitter.github.com/bootstrap/scaffolding.html)调用html doctype。

我不确定这是我的html或我的Cowboy配置的问题。

以下是_app.erl中Dispatch的相关部分:

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

有人可以向我展示我的方式错误吗?

非常感谢,

LRP

2 个答案:

答案 0 :(得分:2)

试试这个

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

答案 1 :(得分:1)

我使用cowboy_static来提供DOCTYPE html,它使用正确的mimetype服务很好。 缺少感叹号:“!DOCTYPE”而不是“DOCTYPE”

<!DOCTYPE html>

请参阅http://www.w3schools.com/tags/tag_doctype.asp

修改:Firefox和Chrome也接受<DOCTYPE html>。所以问题很可能是Mimetype。