gpt4 book ai didi

ruby-on-rails - Rails Assets 管道 : How to prevent caching of a specific asset

转载 作者:行者123 更新时间:2023-12-03 21:40:35 25 4
gpt4 key购买 nike

如标题所述,我想防止缓存特定 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 中查看最新数据文件。

我的确切需求:
  • 我不想整体禁用 Assets 管道缓存
  • 我只想要something.js.erb每次请求时都会呈现。

  • 这甚至可能吗?

    环境信息:
  • rails 4
  • 发展模式
  • Rails 自己的服务器,但将在 prod
  • 上的 nginx 上

    谢谢

    最佳答案

    我可以建议 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com