清單檔案和指令
在 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 .