清单文件和指令
在 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.coffee
和 application.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
文件。这里包括 jquery
和 Turbolinks
:
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
如果你不使用 CoffeeScript,而是使用纯 JavaScript,则语法为:
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .