如何在 Rails 3.1 中管理资产



好的,所以我正在使用Rails 3.1开始一个新项目,我是CoffeeScript的新手。

无论如何,我喜欢让资产文件代表控制器的想法,但是如果我只希望 JS 在调用控制器时呈现怎么办?

例如,我有一个名为 Game 的控制器。 在我的games.js.coffee文件中,我在其中放置了一些代码,并且每个页面请求都会调用它。 甚至与Games无关的页面.

Rails 3.0.7中,我要做的是在应用程序erb文件中放置一个yield(:js),然后在我的Games#action视图中调用content_for(:js)。 这样,仅加载该控制器所需的 js。

或者,我的做法是错误的吗? 为每个页面请求加载和缓存所有 js 代码以提高性能是否更好?

感谢您的任何建议。

为每个页面请求加载和缓存所有 js 代码以提高性能是否更好?

基本上,Rails团队认为答案通常是"是"。大多数站点仅使用单个(缩小的)JS文件效果最佳,默认情况下在Rails 3.1中会获得该文件。这样,一旦用户访问了您网站的单个页面,所有其他页面都将快速加载,因为所有 JS 都已缓存。

如果你的网站有大量的JS(想想Facebook),那么我建议使用像RequireJS这样的库来构建你的网站,以异步加载很少使用的JS代码。否则,我不会费心在不同的控制器下加载不同的代码;为了边际利益,这是很多额外的工作。

看看这个插件,我认为它解决了你的问题:https://github.com/snitko/specific_assets

相关内容

  • 没有找到相关文章

最新更新