清单文件和指令

assets initalizer(config/initializers/assets.rb)中有一些明确定义为预编译的文件。

# Precompile additional assets.
# application.coffee, application.scss, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )

在这个例子中,application.coffeeapplication.scss 被称为’Manifest Files’。此文件应用于包含其他 JavaScript 或 CSS 资产。以下命令可用:

  • require <path>require 指令的功能类似于 Ruby 自己的 require。它提供了一种方法来声明路径中文件的依赖关系,并确保它只在源文件之前加载一次。
  • require_directory <path>:需要单个目录中的所有文件。它与 path/*类似,因为它不遵循嵌套目录。
  • require_tree <path>:需要目录中的所有嵌套文件。它的全局相当于 path/**/*
  • require_self:在任何后续的 require 指令之前插入当前文件的主体。在 CSS 文件中很有用,其中索引文件通常包含需要在加载其他依赖项之前定义的全局样式。
  • stub <path>:删除包含的文件
  • depend_on <path>:允许你在不包含文件的情况下声明对文件的依赖关系。这用于缓存目的。对依赖项文件所做的任何更改都将使源文件的缓存无效。

application.scss 文件可能如下所示:

/*
 *= require bootstrap
 *= require_directory .
 *= require_self
 */

另一个例子是 application.coffee 文件。这里包括 jqueryTurbolinks

#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .

如果你不使用 CoffeeScript,而是使用纯 JavaScript,则语法为:

//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .