我正在将Embedded Elixir用于模板HTML。
<script src="<%= static_path(@conn, '../js/app.js') %>"> </script>
此行给我以下错误:
== Compilation error in file lib/chat_web/views/layout_view.ex ==
** (CompileError) lib/chat_web/templates/layout/app.html.eex:24: undefined function static_path/2
(elixir 1.10.2) src/elixir_locals.erl:114: anonymous fn/3 in :
:elixir_locals.ensure_no_undefined_local/3
(stdlib 3.12.1) erl_eval.erl:680: :erl_eval.do_apply/6
(elixir 1.10.2) lib/kernel/parallel_compiler.ex:304: anonymous fn/4 in
Kernel.ParallelCompiler.spawn_workers/7
static_path
函数来自YourAppWeb.Router.Helpers
(在Phoenix 1.4之前,它来自YourApp.Router.Helpers
),但重要的是,在1.4之前,视图将是import YourApp.Router.Helpers
,因此可以在您的视图和模板中使用,但是从1.4开始,视图alias YourAppWeb.Router.Helpers, as: Routes
(可以在应用程序的web.ex
文件中进行验证),因此可以使用Routes.<function>
访问帮助程序功能。
所以,正如我在评论中建议的那样,您的示例应适用于:
<script src="<%= Routes.static_path(@conn, '../js/app.js') %>"> </script>