清單檔案和指令

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 .