【问题标题】:How to serve static page in phoenix framework?如何在凤凰框架中提供静态页面?
【发布时间】:2016-05-08 02:36:45
【问题描述】:

我想在 Phoenix 框架中提供静态页面以在 Angular 视图中使用它。我知道我可以提供常规 HTML,但我想摆脱默认的 LayoutView。我可以用一个解决方案来做一些不从LayoutView“继承”的凤凰视图。有可能吗?

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    您可以通过在priv/static 中拥有一个文件并匹配Plug.Static 选项中的路径来提供静态文件:

      plug Plug.Static,
        at: "/", from: :hello_phoenix, gzip: false,
        only: ~w(css fonts images js favicon.ico robots.txt my_fine.html)
    

    你也可以使用put_layout/2绕过布局:

    conn
    |> put_layout(false)
    |> render("index.html")
    

    put_layout/2 函数也可以作为插件调用(由于函数参数)。如果您希望它应用于整个控制器,这很有用:

    plug :put_layout, false
    

    【讨论】:

    • 非常有帮助,谢谢。顺便说一句,对于未来的读者,插件静态配置位于 /lib//endpoint.ex
    • 我想从端点 /apidocs 提供一个 index.html。我想把静态文件放在 /priv/static/swagger 中。我无法从上面的答案中推断出如何做到这一点。
    • @raarts 是的,答案的第一部分是允许您然后请求“/swagger/index.html”并且您将获得文档,但文件的完整路径将是必需的。我自己也在尝试找出同样的事情。
    • @raarts 找到了,你想像stackoverflow.com/a/37924920/15064 那样做。使用具有该代码的方法创建控制器,使用相对于代码库根目录的路径(即“./priv/static/swagger/index.html”),然后为“/apidocs”创建指向那个控制器方法。
    猜你喜欢
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多