调用" static_path"从一个角度来看

时间:2016-12-02 06:06:29

标签: elixir phoenix-framework

我想从视图中调用static_path来嵌入js脚本

  def render("index.js", _) do
    <script src="#{Conn.static_path(@conn, "/js/my_js.js")}"></script>
  end

它说&#34; Conn.static_path未找到&#34;。那么它定义在哪里?

1 个答案:

答案 0 :(得分:3)

问题标题的答案是:

MyApp.Router.Helpers.static_path

我也将在评论中回答OP发布的实际问题:

  

我想仅在某些页面上呈现某些js脚本。我怎么能这样做?

我会在</body>之前将此添加到应用布局(或者您正在使用的那个布局):

    ...
    <%= for src <- List.wrap(assigns[:scripts]) do %>
      <script src="<%= static_path(@conn, src) %>"></script>
    <% end %>
  </body>
</html>

然后,在我想要渲染更多脚本的动作中,我将传递额外脚本列表以包括:

def foo(conn, _params) do
  render conn, "foo.html", scripts: ["/js/foo.js"]
end