3

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

例如:foo.js.erb

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

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

4

1 回答 1

2

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

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

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

于 2011-09-30T01:15:32.103 回答