2011-01-10 24 views
1

我已經看到某些Rails CMSes(如Radiant)擁有基本上在訪問頁面時編譯Sass的插件。有沒有辦法在普通的導軌應用程序中做到這一點?是否這樣做的表現?基本上,我正在尋找一種方法來刪除運行Compass編譯我的樣式表的額外步驟。Sass - 它可以在運行時編譯嗎?

+0

我很好奇,如何這將是有益的,它肯定會增加更多的重量頁面請求?(如果你有一個巨大的精靈,會發生什麼?) - 你可以使用Guard或Grunt來監視功能,然後部署css – 2015-06-17 21:24:38

回答

1

我沒有專門使用指南針,但看起來像有一個生產標誌,因此文件被編譯 - 我無法想象他們會構建它來重新編譯生產中的每個請求,Radiant編譯它的css應用程序啓動,如果然後你提交那些生成的CSS文件,它不會嘗試再次生成它們。

http://compass-style.org/docs/tutorials/production-css/

0

按請求編譯?我認爲這可能會對業績產生影響。在這種情況下,你應該使用緩存策略。只有它不在緩存中時才編譯樣式表。

您可以創建一個輔助方法setup_stylesheet將負責設置CSS樣式表。您在應用程序佈局上調用此方法。

setup_stylesheet將檢查css樣式表是否在緩存上,如果有,那就使用它。如果不是,則編譯它。

另一種方法:

你可以建立一個初始化器將調用應用程序啓動時,指南針編譯你的SASS的樣式表。

1

薩斯和指南針自動使用Rails集成。如果您使用的是Rails 3,則只需將gem "haml"添加到您的Gemfile中,並且public/stylesheets/sass中的所有.sass.scss文件將編譯爲.csspublic/stylesheets中的文件。

0
  • 這樣做的性能如何?

在運行時編譯時會出現大規模性能問題。

由於Nex3(作者Sass gem)在another forum上指出,因此不需要運行compass watch

我強烈建議將以下內容放入production.rb:Sass::Plugin.options[:never_update] = true - 如果您使用Heroku,這一點尤其重要。 (你也可以做到這一點在機架的文件,在這裏你還可以指定other options

嗯,祝你好運

相關問題