在单个Phoenix模板中要求定义的JavaScript模块的标准方法是什么?
我不希望在这个模板中的任何地方需要模块。
以下是我正在使用的文件片段。
let TrendChart = {
//... some JS module code here
}
这有标准的app load / require。
...
<script src="<%= static_path(@conn, "/js/app.js") %>"></script>
<script>require("web/static/js/app")</script>
...
<!-- what do i put in this template to require / load the TrendChart module code? -->
<!-- i don't want it required globally, so i don't want to put it in the app.html.eex file -->
我真的在寻找一种在主布局中有两个@inner
块的方法。一个用于内容,另一个用于在内容之后加载其他JavaScript项目。
ASP.NET MVC中的sections之类的东西。 (我知道,我知道!)
所以app.html.eex
会这样结束:
...
@inner
...
<script src="<%= static_path(@conn, "/js/app.js") %>"></script>
<script>require("web/static/js/app")</script>
*something here to load page/template specific javascript*
答案 0 :(得分:7)
您可以将文件保存到web/static/assets/trend_chart.js
,然后将其复制到priv/static/trend_chart.js
,并可从<script src="<%= static_path(@conn, "/trend_chart.js") %>"></script>
获取。
保存到web/static/assets
目录的所有文件都会直接复制到priv/static
,而无需经过构建阶段。