在phoenix中引用正确的静态文件

时间:2018-03-21 12:44:00

标签: caching elixir phoenix-framework

在凤凰项目中,我可以在css文件中引用消化的img:

background-image: url("/images/phoenix.png");

并且引用:

http://localhost:4000/images/phoenix-5bd99a0d17dd41bc9d9bf6840abcc089.png?vsn=d

我想引用相同的文件,但图片src添加了javascript,如下所示:

document.querySelector('#my-img').src = '/images/phoenix.png';

但这只是引用:

http://localhost:4000/images/phoenix.png

如何配置phoenix端点来代替提供消化的img文件?

(我希望此功能可用于更新缓存文件)

1 个答案:

答案 0 :(得分:0)

由于您事先知道了图像文件,因此可以使用javascript变量并将值设置为该图像文件的URL并稍后在脚本中使用

.eex模板中有类似内容:

<script>
 // using static_path(@conn, "/path/to/asset") will give the digested file url
 var disgestedImageUrl ="<%= static_path(@conn, "/images/phoenix.png") %>";
</script>

然后让您的脚本使用.js文件中的URL

<script>
  document.querySelector('#my-img').src = digesterImageUrl;
</script>