資產指的是您伺服器上的靜態檔案 (js, css, 圖片等等),這些檔案是您希望對外公開存取的。在 Sails 中,這些檔案會放置在 assets/
資料夾中。當您啟動應用程式、將檔案新增至 assets/
資料夾,或變更現有資產時,Sails 內建的資產管線會處理這些檔案,並將它們同步到一個隱藏資料夾 (.tmp/public/
)。
這個中間步驟 (將檔案從
assets/
移動到.tmp/public/
) 讓 Sails 能夠預先處理資產,以供用戶端使用,例如 LESS、CoffeeScript、SASS、spritesheets、Jade 模板等等。
.tmp/public
資料夾的內容是 Sails 在執行階段實際提供的內容。這大致相當於 express 中的 "public" 資料夾,或是您可能從其他網路伺服器 (如 Apache) 熟悉的 www/
資料夾。
在幕後,Sails 使用來自 Express 的 serve-static 中間件來提供您的資產。您可以在 /config/http.js
中設定此中間件 (例如,變更快取設定)。
index.html
就像大多數網路伺服器一樣,Sails 遵循 index.html
慣例。例如,如果您在新的 Sails 專案中建立 assets/foo.html
,則可以透過 https://127.0.0.1:1337/foo.html
存取它。但是,如果您建立 assets/foo/index.html
,則可以透過 https://127.0.0.1:1337/foo/index.html
和 https://127.0.0.1:1337/foo
存取它。
重要的是要注意,靜態中間件是在 Sails 路由器之後安裝的。因此,如果您定義了自訂路由,但您的 assets 目錄中也有路徑衝突的檔案,則自訂路由會在請求到達靜態中間件之前攔截請求。例如,如果您建立 assets/index.html
,且未在您的 config/routes.js
檔案中定義任何路由,它將會作為您的首頁提供。但是,如果您定義了自訂路由 '/': 'FooController.bar'
,則該路由將具有優先順序。