2016-01-14 33 views
0

我試圖從sass-rails轉換爲sassc-rails。我正在使用rails 4.2.2sassc-rails資產更改未編譯

當我使用sassc-rails時,即使我停止並重新啓動服務器(我已關閉spring),我的scss文件的更改仍未反映在視圖中。如果我停止服務器並執行rm -r tmp/cache/assets,則會反映更改。

如果我回到sass-rails它可以正常工作,但在重新啓動服務器之前必須先執行rm -r tmp/cache/assets以使其正常工作。

我該如何解決這個問題?

+0

您是否正在通過NFS或其他類型的網絡共享運行您的開發環境,例如使用Vagrant?這似乎是我們嘗試轉移到sassc時遇到的問題的來源。 – boffbowsh

回答

0

這是通過刪除application.css文件中的所有文件後綴來解決的。例如

@import 'pages.css.scss' 
@import 'morris.css' 

@import 'pages' 
@import 'morris' 

這在sassc-rails感謝boffbowshbolandrm

注意,似乎是這個問題的其他原因解決,所以另一種方法是turn off asset caching

0

您需要在應用程序的lib/sassc/rails /中創建名爲importer.rb的配置文件。

你需要做這樣的事情。

class CSSExtension 
def postfix 
    ".css" 
end 
def import_for(original_path, parent_path, full_path) 
    import_path = full_path.gsub(/\.css$/,"") 
    SassC::Importer::Import.new(import_path) 
    end 
end 
+0

我試過了,它沒有幫助。這可能是因爲定義沒有被自動加載。我沒有將'''config.autoload_paths + = Dir [「#{config.root}/lib/sassc/rails」]'''添加到application.rb中,但是這些答案是http://stackoverflow.com/questions/ 3356742/lib-folder-in-rails-3中的最佳路徑加載模塊類指示自動加載僅在父目錄與模塊名稱相同時才起作用。此外,你不能自動加載猴子補丁,並應使用配置/初始化。 (沉思偉的回答)。如果你可以解釋你正在嘗試做什麼,它可能會有所幫助 – Obromios

+0

我現在已經將你的代碼移動到了一個初始化程序,並且可能需要進行一些修改以使上下文正確。我檢查了控制檯,新的定義現在重載了原始方法。但它仍然不能解決問題。 – Obromios