2

我浏览了https://hexdocs.pm/distillery/getting-started.html文档,但无法运行基本的 Phoenix 应用程序。这就是我所做的:

mix phoenix.new test_app --no-ecto
cd test_app

比我更新mix.exs文件以包含酿酒厂部分:

[...]
defp deps do
  [{:phoenix, "~> 1.2.0-rc"},
   {:phoenix_pubsub, "~> 1.0.0-rc"},
   {:phoenix_html, "~> 2.5"},
   {:phoenix_live_reload, "~> 1.0", only: :dev},
   {:gettext, "~> 0.11"},
   {:cowboy, "~> 1.0"},
   {:distillery, "~> 0.9"}]
end
[...]

比我运行以下命令:

mix deps.get
mix compile
mix release.init
export PORT=4000
./node_modules/brunch/bin/brunch b -p
MIX_ENV=prod mix do phoenix.digest, release --env=prod

结果是这样的:

05 Sep 17:16:02 - info: compiled 6 files into 2 files, copied 3 in 1.7 sec
Check your digested files at "priv/static"
==> Assembling release..
==> Building release test_app:0.0.1 using environment prod
==> Packaging release..
==> Release successfully built!
    You can run it in one of the following ways:
      Interactive: rel/test_app/bin/test_app console
      Foreground: rel/test_app/bin/test_app foreground
      Daemon: rel/test_app/bin/test_app start

据我了解,我应该能够使用以下命令启动 Phoenix 应用程序

rel/test_app/bin/test_app foreground

但是当我这样做时,我无法通过 URL 上的浏览​​器访问它http://localhost:4000

是我设置错误还是我误解了系统?如何启动新版本?

4

1 回答 1

4

如在Phoenix 页面中使用 Distillery中所述,您需要更改config/prod.exs. 将TestApp.Endpoint配置更改为:

config :test_app, TestApp.Endpoint,
  http: [port: {:system, "PORT"}],
  url: [host: "localhost", port: {:system, "PORT"}],
  cache_static_manifest: "priv/static/manifest.json",
  server: true,
  root: ".",
  version: Mix.Project.config[:version]

以下命令在之前导出的端口上成功启动 Phoenix:

rel/test_app/bin/test_app foreground 
于 2016-09-05T15:44:46.133 回答