标记中的未定义函数static_path / 2

问题描述 投票:0回答:1

我正在将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
html elixir phoenix-framework elixir-framework
1个回答
0
投票

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>
© www.soinside.com 2019 - 2024. All rights reserved.