【问题标题】:Cowboy: How do you present a static html file from a handler?Cowboy:你如何呈现来自处理程序的静态 html 文件?
【发布时间】:2020-09-07 03:17:31
【问题描述】:

我正在使用牛仔,我有一个 post 方法用于检查用户名和密码的处理程序。这一切都很好。

许多示例展示了如何返回简单的 hello 消息作为响应。不幸的是,我想提供一个 html 文件以响应正确的详细信息,但我看不到如何从处理程序中执行此操作?

我知道如何使用牛仔静态文件处理程序提供静态文件,但我不知道如何通过我自己的处理程序提供静态文件。

【问题讨论】:

  • 您好,进一步阅读 Nine Nines 网站表明您可以添加一个 sendfile 元组。 ninenines.eu/docs/en/cowboy/2.5/guide/resp 元组必须包含文件长度。任何人都知道如何使用 erlang 有效地计算文件长度?谢谢
  • 以下代码有效,但我必须手动输入文件长度。请求 = cowboy_req:reply(200, #{> => >}, {sendfile, 0, 2591, "/home/cowboy/examples/eventsource/priv /Device.html"}, Req0),此解决方案的两个问题是:1) 您必须手动设置文件长度。不确定如何在 Erlang 中执行此操作。 2)您必须提供文件的完整路径。想使用priv_dir。 MPC

标签: erlang static-files cowboy


【解决方案1】:

最后一个使用 priv_dir 并解决文件大小问题的解决方案:

FileSize=filelib:file_size(code:priv_dir(eventsource)++"/CP.html"),

Req = cowboy_req:reply(200, #{<<"content-type">> => <<"text/html">>}, 
      {sendfile, 0, FileSize, code:priv_dir(eventsource) ++ "/CP.html"}, Req0),

【讨论】:

    猜你喜欢
    • 2015-07-24
    • 2021-01-09
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多