【问题标题】:how to prevent sprockets from caching a .erb file?如何防止链轮缓存 .erb 文件?
【发布时间】:2011-09-30 09:15:32
【问题描述】:

Sprockets gem 缓存 .erb 文件,即使其中的 ruby​​ 代码可能在每次编译时评估不同

例如:foo.js.erb

var foo = <%= Kernel.rand %>;

评估一次并永久缓存。你如何防止像这样的某些文件被 sprockets 缓存?

【问题讨论】:

    标签: javascript ruby erb sprockets


    【解决方案1】:

    您可以将 JavaScript 分成库(.js.erb 或只是 .js)和配置数据(例如您的 var foo)。然后将所有库代码留在 Sprocket 手中,并将您的配置放入您的普通 ERB 视图中(可能嵌入在您的布局中)。

    如果更适合您的架构,您还可以通过单独的控制器(也许是/config.js)提供配置数据。

    这种方法通过将静态库与非静态数据分开来避免您的整个问题。此外,这种方法非常适合 Rails 3.1 资产管道,您应该在生产部署之前预编译所有内容。

    【讨论】:

    • 是的,不过我不在 Rails 应用程序中。这只是 html、js 和 sprockets。我找到了一种避免使用 js.erb 文件的解决方法。但是在 Rails 应用程序中,是的,您的解决方案似乎是正确的。
    猜你喜欢
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2018-04-13
    • 2020-11-18
    相关资源
    最近更新 更多