我建立我的第一个微小的凤凰应用投放,撞上了超级讨厌的问题:陈旧的静态资产从凤凰
每当我做出改变JS文件如web/static/js/socket.js Brunch正在接受更改并重新编译priv/static/js/app.js。我已经验证了这些更改实际上已正确编译到app.js中。
但是,我无法让服务器向客户端提供更新的文件。 任何想法,我可以使缓存失效正常工作? 这可能是牛仔配置问题吗?
注意:我在Vagrant框(Ubuntu)和主机(OSX)上的浏览器中运行服务器。
更新:这将变成一个谜!显然,响应的内容来自缓存文件,但长度取决于磁盘上文件的长度。
实例:
echo "hey" > foo.js
(文件大小4)
为curl http://localhost:4000/js/foo.js
响应是hey\n
printf "." > foo.js
(作品尺寸1)
响应:h
printf "1234567890" > foo.js
(文件大小10)
响应(十六进制):6865 790a 0000 0000 0000
(响应为hey\n
后跟空白填充)
这是整页刷新?当你在浏览器中重新加载页面时,你会得到旧的'app.js'吗?这是在dev还是prod? – Dogbert
是的,在整页上重新加载。我正在使用cURL来确保它与浏览器缓存无关。它在开发中。我尝试将一个新文件(foo.js)放入priv/static/js中,并且具有相同的问题。服务器将选取新文件,但即使在文件发生更改后,服务器也会继续提供原始内容。 – jonasmaturana