如何在没有Phoenix的情况下配置Plug.Static

msz*_*rlo 10 elixir cowboy phoenix-framework

我现在被困了几个小时,试图弄清楚如何在没有任何其他框架的情况下配置Plug.Static (Phoenix,Sugar,...); 只是牛仔,插头和Elixir.我只是不知道如何把东西放在路由器里.

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

  get "/" do
    Logger.info "GET /"
    send_resp(conn, 200, "Hello world\n")
  end
Run Code Online (Sandbox Code Playgroud)
  1. 申报是Plug.Static在正确的地方吗?不应该之后plug :dispatch吗?
  2. 我是否需要定义其他路线
  3. 有这个声明:
    1. 要达到的URL是什么index.html
    2. 文件系统index.html应该位于何处

我迷失了......

感谢您的反馈

Jos*_*lim 9

看一下Plug.Router文档的方法:match:dispatch工作原理.:match将尝试找到匹配的路线,并将:dispatch调用它.这意味着Plug.Static只有在路由器中有匹配的路由时,才会调用您的设置,这没有意义.你想要的plug Plug.Static一切.记住插件只是按声明顺序调用的函数.

除此之外,您的Plug.Static设置似乎没问题.您当前的配置将在"/ pub"中提供资源,这意味着"/pub/index.html"将在您的应用中查找"priv/static/index.html".更多信息:http://hexdocs.pm/plug/Plug.Static.html