次のステップは Adding Pages になります。
二つの新しいページを追加、とのこと。
構造が違う?
見てるドキュメントと構造が違うな。。
- lib
- hello
- endpoint.ex
- repo.ex
- hello.ex
みたいなカンジ。
と思ったら
そもそも localhost なコンテンツが見れていない、ということが分かるなど。
ポートでした
default は 4000 なんですが、cloud9 で preview しようと思ったら 8080 にしないと駄目みたいです。
config :hello, Hello.Endpoint,
http: [port: 8080],
web ディレクトリ
トップレベルに移動しているらしく、以下な形になっているようです。
- web/
- channels/
- controllers/
- models/
- static/
- templates/
- views/
- gettext.ex
- router.ex
- web.ex
上の router.ex
見てみるに以下な記述があります。
scope "/", Hello do
pipe_through :browser # Use the default browser stack
get "/", PageController, :index
end
この router.ex
の記述はドキュメントと同じですね。PageController はどこにあるのかな。
controller
配下に page_controller.ex
がありました。index.html
を render しています。
- web
- templates
- layout
- page
- index.html.eex
view
phoenix では view という部品が template を render する、という記載あり。ちょっと静的コンテンツの追加の部分を実装してみます。
むむう
例示されている記述と微妙な差分がありました。hello_controller.ex
が以下。
defmodule Hello.HelloController do
use Hello.Web, :controller
def index(conn, _params) do
render conn, "index.html"
end
end
HelloWeb.HelloController
ではなく、でした。あるいは view も以下な記載。
defmodule Hello.HelloView do
use Hello.Web, :view
end
テンプレも以下、なのかどうか。
<div class="jumbotron">
<h2>Hello World, from Phoenix!</h2>
</div>
もう少し
URL パラメータ? を表示する例も実装できております。リポジトリとか作りたいけどどうするかな。