【问题标题】:Why use gems for serving assets instead of the vendor file?为什么使用 gems 来提供资产而不是供应商文件?
【发布时间】:2015-01-13 20:12:52
【问题描述】:

我对 Rails 比较陌生,我有一个关于从 gem 提供资产与仅将文件加载到资产管道中的问题。

据我所知,它们实际上做的事情是相同的,因为它们都使文件在资产管道中可用,以便在清单中调用。

提供类似服务的好处是什么

gem 'jquery-rails'
作为 gem 而不是仅仅将
/vendor/assets/javascripts/jQuery.js
放在供应商资产中并以这种方式加载?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    优点是您不必将文件添加到您的存储库并管理更新,您更新 gem 并更新了依赖项。他们还可以添加助手以更轻松地使用资产。

    并非所有的 JS/CSS 项目都与资产管道开箱即用兼容,因此有时 gem 也会为您工作。

    仅仅因为文件被提供给客户端并不会使它与您的应用程序中的任何其他依赖项有太大不同。

    【讨论】:

      【解决方案2】:

      gem 包括用于 Rails 的不显眼的 javascript 以及 jQuery 本身。它还允许您在测试中使用assert_select_jquery

      【讨论】:

        【解决方案3】:

        jquery-rails 是 gem 包含 jquery.js、jquery_ujs.js 的 js 文件。如果您不包含 jquery-rails,那么您将同时包含 jquery.js 和 jquery_ujs.js。如果您没有为 jquery-rails 使用 gem,您需要手动跟踪 jquery.js 用于 jquery_ujs.js 的版本。目前这些依赖管理由 gem 'jquery-rails' 负责。

        【讨论】:

          【解决方案4】:

          好处:

          1. 获得新版本时无需手动复制 jquery 发布,gem 会确保只添加最新的代码。

          2. 查看此链接: https://github.com/rails/jquery-rails/blob/master/lib/jquery/assert_select.rb#LC48 它提供了几种方法来帮助您测试代码。

          猜你喜欢
          • 2011-09-27
          • 1970-01-01
          • 2016-08-17
          • 1970-01-01
          • 2012-02-04
          • 1970-01-01
          • 2010-09-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多