2011-09-20 79 views
3

我通常對Rails 3.2,Sprockets和Compass感到困惑。Rails 3.1指南針和鏈輪。困惑

  1. 在這個article的頂部,它說*= require directives,使用薩斯-Rails的不再需要的,只是使用@import代替。 Sass-Rails Github談論了一些關於glob @import的功能,但完全沒有說到@import是新的*= require。我該使用哪一種或組合:( ?

  2. vendor/assets/stylesheetscoderay.css.sassapplication.css.sass使用@import將導入my_coderay.css.sass? 我不知道,因爲我使用的是在my_coderay.css.sass羅盤混入(從而把一個@import "compass/css3"在該文件的頂部),我得到一個錯誤:
    「要導入的文件找不到或無法讀取:指南針」

  3. 在這種article它談論配置鐵路的薩斯發動機千牛關於資產路徑。但我認爲Sass-Rails 已經@import資產路徑是?

    而且當我嘗試包括羅盤的31支...

    gem 'compass', :git => 'git://github.com/chriseppstein/compass.git', :branch => 'rails31'

    我得到的錯誤...
    使用從混帳羅盤(0.12.0.alpha.0.22e2458): //github.com/chriseppstein/compass.git(在rails31上)/Users/george.norris/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb :365:在`initialize'中:沒有這樣的文件或目錄 - /Users/george.norris/.rvm/gems/ruby-1.9.2-p180/bundler/gems/gems/compass-0.12.0.alpha.0.22e2458/bin/compass(Errno :: ENOENT)

  4. 最後,如果我將coderay.css.sass從供應商/資產中提取出來並放到應用/資產中,我不會收到上述錯誤。但我得到這是在吐出public/application.css.css錯誤(.css.css ???)

    語法錯誤:文件導入未找到或不可讀:基地。 負載路徑: 指南針:: SpriteImporter /用戶/ geonorr /網站/類星體/公共/樣式表/上海社會科學院 /用戶/ geonorr /網站/類星體/應用/資產/樣式 /Users/geonorr/.rvm/gems/ ruby-1.9.2-p180/gems/compass-0.11.5/frameworks/blueprint/stylesheets /Users/geonorr/.rvm/gems/ruby-1.9.2-p180/gems/compass-0.11.5/frameworks/羅盤/樣式表 第3行的/用戶/ geonorr /站點/類星體/應用/

我使用滑軌(3.1.0),薩斯(3.1.7),薩斯擺幅(3.1.0 ),指南針(0.11.5)


感謝您的回覆。覺得我越來越近......
包括指南針主科和收到此錯誤:

gem 'compass', :git => 'git://github.com/chriseppstein/compass', :branch => 'master'

從混帳使用羅盤(0.12.alpha.0.d03d529):// github上。COM/chriseppstein /羅盤(在主)/Users/gnee/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:365:in initialize': No such file or directory - /Users/gnee/.rvm/gems/ruby-1.9.2-p180/bundler/gems/gems/compass-0.12.alpha.0.d03d529/bin/compass (Errno::ENOENT) from /Users/gnee/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:365:in開放」 從/Users/gnee/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:365:in shebang' from /Users/gnee/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:456:in app_script_text」

+0

僅供參考,指南針導軌3.1分支消失了。很難找到關於這個項目發生的事情的信息。 – twmills

+0

好吧,這就是爲什麼bundler失敗。是的,這個項目的所有信息似乎已被棄用。 –

回答

3
  1. * =從Sass的角度來看,需要評論可以被看作是一種蠻幹的解決方法,因爲Sass有一個專門的語言特性:@import指令。 @import告訴Sprockets做什麼。當您從Rails 3.0項目進行遷移時,請保留所有@import語句原樣。目前,唯一的問題是「globbing」:如何告訴Rails/Sprockets同時考慮其他Sass文件,而不是application.css.s(ac)ss。

    這裏是the latest Compass installation guide爲Rails 3.1。它也解決了通配問題。

  2. 因爲它是在你的應用程序,以及在你的寶石Rails Guideapp/assetslib/assetsvendor/assets目錄稱/引擎都包含在Rails.application.config.assets.paths。我驗證瞭如果正確安裝指南針,compass/css3庫中的+不透明度(.5)按預期工作。這導致我們到下一點:

  3. rails31分支現在合併到master和版本0.12.alpha已發佈,應支持Rails 3.1。不過,這個版本還沒有缺陷。因此,我建議要依靠最新的主版本:「未定義的方法無[]」

    gem 'compass', git: 'git://github.com/chriseppstein/compass', branch: 'master'

  4. 我目前遇到的唯一的錯誤是一個例外試圖編譯創建精靈報表時。見this issue。一種認爲解決方法是設置sass_options = {quite: true}config/compass.rb

此外,注意:我沒有薩斯在我的Gemfile了。我認爲你可以依靠sass-rails消除依賴。

+0

'@import告訴鏈輪做什麼'。 Sass-Rails頁面沒有提到這一點。有沒有任何資源可以涵蓋這一點?一直谷歌這個死亡沒有運氣。 –

+1

羅盤創建者[這裏宣佈](https://github.com/chriseppstein/compass/issues/337#issuecomment-1030655):「我們要做的就是讓薩斯@import指令通過鏈輪找東西薩斯用戶不該不必使用黑客評論來完成這一行爲,Sass已經實現了這個功能,我們只需要將它粘合在一起。「 ...這是結果:https://github.com/rails/sass-rails/blob/master/lib/sass/rails/importer.rb – crispy