2013-03-06 36 views
0

我有一個基於this example的指南針sinatra項目。自動編譯持久性CSS沒有羅盤手錶

正如this commit in a pull requestthis pull request comment所述,sinatra能夠根據請求自動生成按需編譯的css文件。

但是,這似乎是一種浪費,因爲即使沒有對css文件進行任何更改,服務器也必須重新編譯。如果服務器觀察到更改,重新編譯文件更改,但是會按需提供相同的靜態css文件,這不是更好嗎?這就好像我們運行「羅盤監視」並且僅僅服務於編譯的文件一樣。

我的問題是:是否有一個很好的方法讓sinatra自動將我的sass文件編譯爲一個靜態的CSS文件,而無需單獨運行手錶指南針?

注意:我也有一個express/node/stylus項目,它的行爲就像這樣,這讓我相信這是可能的,也是合乎邏輯的方式,而我只是錯誤配置我的sinatra應用程序。

+0

或者:是否有一種很好的方式讓sinatra自動將我的sass文件編譯爲靜態CSS * *,而無需單獨運行手錶指南針? – kumikoda 2013-03-06 01:14:30

回答

0

要更改必須要麼在CSS:在後臺

  • 推新文件到應用服務器(一個可能重啓)
  • 重新編譯(如在服務器上compass watch
  • GET服務器上的變化編譯(使用類似你給的例子)

個人而言,我贊成第一個。我不知道爲什麼我想要服務器編譯靜態資產?它佔用了寶貴的資源,並且我的開發機器上的CSS發生了變化,爲什麼不在我的開發機器上編譯它們呢?我沒有聽到這些問題的良好答案,因此我使用Guard文件(或者可以使用sass watchcompass watch作爲後臺任務,例如sass --watch app/views/stylesheets:app/public/css &)來編譯它們,然後檢入.css文件並將它們推送到服務器。

YMMV。