我想设置 Phoenix 为静态 index.html 提供服务,无论发送给它的路由是什么,而无需更改 URL,同时提供对非 html 资产(.js、.css、.jpg、...)的访问,因为我的SPA(在榆树中)会查看路线并确定要做什么。
端点.ex
plug Plug.Static,
at: "/", from: :mosaic_api, gzip: false,
only: ~w(assets css fonts images js favicon.ico robots.txt index.html)
Run Code Online (Sandbox Code Playgroud)
路由器文件
scope "/", Api do
pipe_through :browser # Use the default browser stack
get "/*path", PageController, :index # :elm
end
Run Code Online (Sandbox Code Playgroud)
页面控制器
defmodule Api.PageController do
use Api.Web, :controller
plug :action # Edit: now removed
def index(conn, _params) do
conn
|> put_layout(false)
|> render("index.html")
# Edit: replaced 3 lines …Run Code Online (Sandbox Code Playgroud) 有没有办法读取和呈现位于控制器服务器上另一部分的静态html文件?我不打算通过静态页面功能重定向或提供此页面.