在 Sails 中,「檢視」是指在伺服器端編譯成 HTML 頁面的標記範本。在大多數情況下,「檢視」會作為傳入 HTTP 請求的回應,例如用於提供您的首頁。
極少數情況下,您也可以將「檢視」直接編譯成 HTML 字串,以在您的後端程式碼中使用 (請參閱
sails.renderView()
)。例如,您可以使用這種方法來發送 HTML 電子郵件,或建構大型 XML 字串以用於舊版 API。
預設情況下,Sails 設定為使用 EJS (Embedded Javascript) 作為其檢視引擎。EJS 的語法非常傳統;如果您使用過 php、asp、erb、gsp、jsp 等,您會立刻知道自己在做什麼。
如果您偏好使用不同的檢視引擎,還有許多選項。Sails 透過 Consolidate 支援所有與 Express 相容的檢視引擎。
預設情況下,「檢視」定義在您應用程式的 views/
資料夾中,但與 Sails 中的所有預設路徑一樣,它們是可配置的。如果您完全不需要提供動態 HTML 頁面 (例如,如果您正在為行動應用程式建構 API),則可以從您的應用程式中移除該目錄。
在任何您可以存取 res
物件的地方 (例如控制器動作、自訂回應或原則),您可以使用 res.view
來編譯您的其中一個檢視,然後將產生的 HTML 傳送給使用者。
您也可以將檢視直接連結到 routes.js
檔案中的路由。只需指出從應用程式的 views/
目錄到檢視的相對路徑即可。例如
{
'get /': {
view: 'pages/homepage'
},
'get /signup': {
view: 'pages/signup/basic-info'
},
'get /signup/password': {
view: 'pages/signup/choose-password'
},
// and so on.
}
如果您正在為瀏覽器建構 Web 應用程式,則部分 (或全部) 導覽可能會在用戶端進行;也就是說,使用者每次瀏覽時,不是由瀏覽器提取新的 HTML 頁面,而是由用戶端程式碼預先載入一些標記範本,然後在使用者的瀏覽器中呈現,而無需再次直接連線伺服器。
在這種情況下,您有幾個選項可以用於啟動單頁應用程式
views/publicSite.ejs
。此選項的優點是您可以使用 Sails 中的檢視引擎,將資料從伺服器直接傳遞到將在用戶端呈現的 HTML 中。這是一種將使用者資料之類的內容傳送到用戶端 JavaScript 的簡單方法,而無需從用戶端發送 AJAX/WebSocket 請求。assets/index.html
。雖然您無法以這種方式將伺服器端資料直接傳遞到用戶端,但此方法的優點是它允許您進一步分離應用程式的用戶端和伺服器端部分。請注意,assets 資料夾中的任何內容都可以移至靜態 CDN (例如 Cloudfront 或 CloudFlare),讓您能夠利用該提供商地理分散的資料中心,讓您的內容更接近您的使用者。