Ruby on Rails 清单文件和指令

示例

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

# 预编译其他资产。
# 已经添加了application.coffee,application.scss和app / assets文件夹中的所有非JS / CSS。
# Rails.application.config.assets.precompile + =%w(search.js)

在此示例中,application.coffee和application.scss被称为“清单文件”。此文件应用于包含其他JavaScript或CSS资产。可以使用以下命令:

  • require <path>:该require指令的功能类似于Ruby自己的require。它提供了一种声明路径中文件依赖项的方法,并确保仅在源文件之前加载一次。

  • require_directory <path>:需要单个目录中的所有文件。之所以类似,是path/*因为它不遵循嵌套目录。

  • require_tree <path>:需要目录中的所有嵌套文件。其等效glob为path/**/*。

  • require_self:导致当前文件的正文插入到任何后续require指令之前。在CSS文件中很有用,其中索引文件通常包含需要在加载其他依赖项之前定义的全局样式。

  • stub <path>:从包含文件中删除文件

  • depend_on <path>:允许您声明对文件的依赖关系而不包含它。这用于缓存目的。对依赖文件所做的任何更改将使源文件的缓存无效。

一个application.scss文件可能看起来像:

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

另一个示例是application.coffee文件。这里包括jquery和Turbolinks:

#=需要jquery2
#=需要jquery_ujs
#=需要Turbolinks
#= require_tree。

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

//=需要jquery2
//=需要jquery_ujs
//=需要Turbolinks
//= require_tree。