如标题所述,我想防止缓存特定 Assets ,即 javascript 文件 something.js.erb
.情况如下:something.js.erb
的内容:
...
var something = <%= SomethingHelper.get_something.to_json %>;
...
它绑定(bind)来自
SomethingHelper
的值成功但只有一次,除非 javascript 文件是手动编辑的,否则 var something
的值永远不会再次分配。这可能在某种程度上是意料之中的,但显然不能满足我的需求。
SomethingHelper.get_something
的输出根据通话时间变化。所以我需要在我编译的 something.js
中查看最新数据文件。我的确切需求:
something.js.erb
每次请求时都会呈现。 这甚至可能吗?
环境信息:
谢谢
最佳答案
我可以建议 2 个选项:
1)使用内联js设置变量:
<%= javascript_tag do %>
window.something = '<%= j SomethingHelper.get_something.to_json %>';
<% end %>
2)将变量存储在您的html中并从您的js中调用它:
#html
<body data-something="<%= j SomethingHelper.get_something.to_json %>">
</body>
#js
$("body").data("something");
关于ruby-on-rails - Rails Assets 管道 : How to prevent caching of a specific asset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16731329/