使用 stasis 產生靜態網頁,
除了每更新HAML檔後,
再執行編譯的方式之外,
也提供了即時監測更新的方式。
靜態網頁即時更新
靜態網頁與動態網頁的區別,
在於接受query時,
該頁是早就以檔案形式存在,
或者是即時才產生的頁面。
而在編輯HAML檔案時,
想看馬上編輯的成果,
又得再執行一次,
若編輯頻繁,又需要頻繁執行。
stasis可以有即時更新的模式,
只要原始檔案一有新增、編輯、刪除的時候,
馬上就會立即輸出成HTML檔。
更新方式
以現有的檔案為例:
$ tree
.
├── controller.rb
├── index.html.haml
├── js
│ ├── jquery.min.js
│ └── lorem.js
├── layout.html.haml
└── public
├── index.html
└── js
├── jquery.min.js
└── lorem.js
3 directories, 8 files
在專案的目錄裡執行:
$ stasis -d
Development mode enabled: /home/SITES/site1
[2013-10-01 08:55:41] Regenerating project...
WARN: tilt autoloading 'haml' in a non thread-safe way; explicit require 'haml' suggested.
[2013-10-01 08:55:41] Complete
表示正在監測/home/SITES/site1裡的檔案,
當有所新增、刪除、修改任何檔案之時,
例如,在新增一個about.html.haml就出現:
[2013-10-01 09:12:34] Regenerating project...
[2013-10-01 09:12:34] Complete
再觀察public裡自動就多了個 about.html 的檔案。
$ tree
.
├── about.html.haml
├── controller.rb
├── index.html.haml
├── js
│ ├── jquery.min.js
│ └── lorem.js
├── layout.html.haml
└── public
├── about.html
├── index.html
└── js
├── jquery.min.js
└── lorem.js
3 directories, 10 files
附加web server的功能
用 stasis -d 的指令,
會自動監測更新檔案,
若 stasis -d 4000 的指令,
或指定的port,
則會開啟一個 4000 或指定 port 的 web 網站服務。
這種監測更動的來源檔,
即時輸出成靜態網頁,
對於編寫修改網頁者是方便快速的維護。