我正在启动 Elixir,我目前正在开发一个基本的 Web 服务器/API。 我现在只使用
plug_cowboy
,因为我专注于学习基础知识。
服务器使用
plug :match
和plug :dispatch
来回答各种GET
请求。
在其中一个答案中,我正在尝试使用 send_file
函数发送 HTML 文件。
我的问题是服务器找不到文件,因为它不存在于应用程序搜索该文件的位置。
HTML文件位置:
lib/httpserver/priv/index.html
搜索路径:_build/dev/lib/httpserver/priv/index.html
Router中有代码:
defmodule Httpserver.Router do
use Plug.Router
forward("/static", to: Httpserver.Static)
plug :match
plug :dispatch
get "/" do
priv_dir = :code.priv_dir(:httpserver)
index_path = Path.join([priv_dir, "index.html"])
send_file(conn, 200, index_path)
end
get "/:name" do
send_resp(conn, 200, "Welcome, #{name} !")
end
match _ do
send_resp(conn, 404, "Not found...")
end
end
我试过:
我能找到的只是
start_permanent
的build_embedded
函数中的mix.exs
和project
选项,并没有解决我的问题。