11

我使用codekit編寫較少的代碼,然後它自動轉換爲css。從資產中排除文件:在rails中預編譯

我不想讓rails將我的少文件轉換爲css,我寧願使用codekit。

如果我通過

rake assets:precompile 

預編譯的資產,我得到

rake aborted! 
cannot load such file -- less 

如何從預編譯排除一個特定的文件夾/文件類型? (我所有的減檔都在app /資產/樣式表/少和CSS(我不想被預編譯)是在app /資產/樣式表/ CSS

更新

刪除application.less解決了這個但如何從處理排除它擺在首位

回答

18

Asset Pipeline指南:

編譯文件的默認匹配包括的application.js, AP plication.css和所有非JS/CSS文件(即.coffee和.scss,因爲他們編譯成JS/CSS 文件不會被自動列入):

[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ] 

如果您有其他艙單或單獨的樣式表和JavaScript文件 包括,你可以將它們添加到預編譯數組:

config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js'] 

所以,我要說的是,你的解決方案是修改config.assets.precompile排除.less文件。也許這樣的事情(在合適的環境文件,像config/environments/production.rb):

config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css', '.less']) }, /application.(css|js)$/ ] 
+0

這不起作用..同樣的錯誤 –

+1

這會失敗,因爲Rails不知道如何處理'less'文件。將'less-rails' gem添加到您的應用中可能會消除錯誤,但不是您在問題中提出的解決方案。 – Kashyap

+0

好的更正 - 這個工程,當我把它放在production.rb ..不是它application.rb ..任何只與捆綁exec –

1

如果應用程序/資產的文件夾下的目錄結構是這樣:

application.css 
/css 
(generated by code kit) 
|...home.css 
|...index.css 
/less 
|...home.less (assuming this is the extension) 
|...index.less 

然後,在你的application.css文件,必須有一個指令*= require_tree .這告訴rails掃描所有文件/目錄,並嘗試將所有文​​件編譯成一個css文件。

將其更改爲*= require_directory ./css,它將加載css目錄下的文件進行編譯。

+0

仍然是:(值得注意的是,我的樹是/css/application.css和/少/ application.less –

+0

啊!這會失敗,因爲application.css是子資產將被編譯到的主文件。 – Kashyap