【问题标题】:Rails 3.1 recommended practice for managing library javascripts [closed]Rails 3.1 推荐的管理库 javascripts 的做法 [关闭]
【发布时间】:2011-09-22 05:43:46
【问题描述】:

我很好奇在 Rails 中组织和使用库 javascript(如 Backbone、Underscore、Modernizr 等)的推荐方法是什么。我注意到许多不同的做法,所以它似乎有点令人困惑。

有许多 gem 提供捆绑诸如 Modernizr、Backbone、Underscore 等内容的能力。对于存在 gem 的情况,这是首选方法吗?

对于不存在 gem 的情况,使用 /public 文件夹或 /app/assets/javascripts 并通过管道进行是否有意义?

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3.1


    【解决方案1】:

    只是添加一些东西(@DevinM 的答案很棒),这是我对在 Rails 中使用 JavaScript 的想法:

    • 如果有捆绑 JavaScript 库的 Gem(如 jquery-rails),我会坚持:
      • 使库远离您的代码。
      • 将库自动添加到 Rails(或至少说明如何执行此操作)。
      • 如果您愿意,可通过bundle update 帮助您自动更新库。
    • 如果 Gem 没有集成,请将其保存在 vendor/assets 下,如下所述:
      • 确保库被称为外部库。
      • 在某处记录对该库的需求(例如,在您的 application.js 文件中)
    • lib/assets 中您自己的库,如所述。
    • application.js 或依赖于控制器的 *.js 文件位于您的 app/assets/javascripts 文件夹中。
    • 使用application.js 主要用于接线,这意味着如何将其他库集成到您的应用程序中。在那里解释代码的含义:使用的库、对文档的引用、配置的含义。

    我的经验是,一段时间后,您不记得图书馆的原因是什么,因此一些家务可以帮助您保持健康。

    【讨论】:

      【解决方案2】:

      我会看看Rails Guide 这个问题。

      资产可以放置在三个位置之一的应用程序中: 应用程序/资产、库/资产或供应商/资产。

      app/assets 用于应用程序拥有的资产,例如 自定义图像、JavaScript 文件或样式表。

      lib/assets 用于您自己的库代码,但实际上并不适合 进入应用程序或共享的那些库的范围 跨应用程序。

      vendor/assets 用于由外部实体拥有的资产,例如 作为 JavaScript 插件的代码。

      我要做的是将所有您不维护的 JS 文件放置为供应商/资产,如果此文件夹丢失,您可以创建它。至于将 gems 用于你的资产,这对于像 jQuery 这样的大型框架和库来说通常很好,但是我会避开它们,比如 Backbone.js 和其他东西,只是为了保持 gemfile 干净并减少你可能会看到的一些臃肿。

      如果您需要任何说明,请告诉我,祝您申请顺利。

      【讨论】:

      • 谢谢,这正是我想知道的。我也不喜欢使用 Gems。
      • 是的,我已经看到我相当一部分项目的创建者过度使用 gems,IMO 最好使用库创建者提供的版本。这适用于外部服务以及 Google Maps JS API。
      猜你喜欢
      • 1970-01-01
      • 2012-02-11
      • 2013-08-12
      • 1970-01-01
      • 2013-04-28
      • 2011-06-01
      • 2010-09-21
      • 2011-01-21
      • 2023-04-03
      相关资源
      最近更新 更多