【问题标题】:What sprockets mean in rails链轮中的链轮是什么意思
【发布时间】:2015-10-28 00:14:22
【问题描述】:

所以,我刚刚意识到我完全不知道导轨中的链轮是什么。

当使用 bootstrap 或 materialize 时,要求在 application.js 文件中包含 sprocket(bootstrap-sprocket 或 materialize-sprocket)。

我搜索的所有内容都在谈论资产管道,让我更加困惑。

根据 ruby​​-guides,

资产管道在技术上不再是 Rails 4 的核心特性,它已从框架中提取到 sprockets-rails gem 中。

当我做bundle show sprockets-rails 时,我得到了:

/Users/Sunday/workspace/resilience/vendor/bundle/ruby/2.1.0/gems/sprockets-rails-2.3.1

这表明我至少拥有宝石。

但我的困惑和我的问题是,sprockets 的重要性是什么,而不是 sprockets-rails,它使其他宝石像 bootstrapmaterialize 以及可能其他一些宝石拥有 sprockets,尤其是在他们的 javascript 文件?

谢谢。

【问题讨论】:

标签: javascript ruby-on-rails sprockets


【解决方案1】:

Sprockets 是一个用于编译和提供 Web 资产的 Ruby 库。 Sprockets 允许将应用程序的 JavaScript 文件组织成更小更易于管理的块,这些块可以分布在许多目录和文件中。它提供了有关如何在我们的项目中包含资产的结构和实践。

在每个 JavaScript 文件的开头使用指令,Sprockets 可以确定 JavaScript 文件依赖于哪些文件。在部署您的应用程序时,Sprockets 然后使用这些指令将您的多个 JavaScript 文件转换为一个文件以获得更好的性能。

【讨论】:

  • 抱歉后续问题,但 sprockets 仅对 javascrpt 文件可靠是否正确。没有像 css 这样的其他类型,对吧?
【解决方案2】:
/app/assets/javascripts/application.js
// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require_tree .

application.js 文件称为清单,由Sprockets 在内部管理。当对该文件的请求进入时,Sprockets 会查看清单并将其中提到的每个文件编译在一起,并在此文件中的任何代码之前包含它们的内容。 Sprockets 将在 loadpath 中搜索此文件,在这种情况下,从 jquery-rails 引擎的 vendor/asset/javascripts 目录加载它。

【讨论】:

  • 这是一个很好的解释。加载路径到底是什么?
  • loadpath 只是您列出的文件的路径。
猜你喜欢
  • 2013-11-18
  • 2019-09-23
  • 1970-01-01
  • 2012-05-07
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
相关资源
最近更新 更多