链轮中的链轮是啥意思
Posted
技术标签:
【中文标题】链轮中的链轮是啥意思【英文标题】: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
,它使其他宝石像 bootstrap
和 materialize
以及可能其他一些宝石拥有 sprockets
,尤其是在他们的 javascript 文件?
谢谢。
【问题讨论】:
Sprockets is a Ruby library for compiling and serving web assets. It features declarative dependency management for JavaScript and CSS assets, as well as a powerful preprocessor pipeline that allows you to write assets in languages like CoffeeScript, Sass, SCSS and LESS. 【参考方案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 只是您列出的文件的路径。以上是关于链轮中的链轮是啥意思的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ruby on Rails 3.1 中禁用资产管道(链轮)消息的日志记录?