【问题标题】:How do I manage assets in Rails 3.1?如何在 Rails 3.1 中管理资产?
【发布时间】:2011-08-30 06:32:08
【问题描述】:

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

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

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

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

或者,我是不是走错了路?为每个页面请求加载和缓存 ALL js 代码以提高性能是否更好?

感谢您的任何建议。

【问题讨论】:

    标签: ruby-on-rails-3 coffeescript assets


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        • 2011-11-12
        • 1970-01-01
        • 1970-01-01
        • 2012-02-04
        • 1970-01-01
        • 2011-11-23
        相关资源
        最近更新 更多