我试图弄清楚如何在不使用任何其他框架(Phoenix,Sugar等)的情况下配置Plug.Static ;只是牛仔,即插即用药。我只是不知道如何将东西放到路由器中。

  plug :match
  plug Plug.Static, at: "/pub", from: :cerber
  plug :dispatch

  get "/" do
    Logger.info "GET /"
    send_resp(conn, 200, "Hello world\n")
  end
  • Plug.Static的声明是否在正确的位置?不应该在plug :dispatch之后吗?
  • 我是否需要定义其他路线
  • 带有以下声明:
  • 到达的URL是什么,比如index.html
  • 在文件系统index.html上应位于的位置

  • 我只是失去了。

    最佳答案

    看一看Plug.Router docs,了解:match:dispatch的工作方式。 :match将尝试找到匹配的路由,并且:dispatch将调用它。这意味着仅当路由器中具有匹配的路由时,才会调用设置中的Plug.Static,这没有任何意义。您需要在所有内容之前添加plug Plug.Static。请记住,插件只是按照声明顺序调用的函数。

    除此之外,您的Plug.Static设置似乎还可以。您当前的配置将在“/pub”处转换 Assets ,这意味着“/pub/index.html”将在您的应用中查找“priv/static/index.html”。更多信息在这里:http://hexdocs.pm/plug/Plug.Static.html

    关于elixir - 如何在没有Phoenix的情况下配置Plug.Static,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32543265/

    10-11 13:39