13

I use codekit for writing less which it then converts to css automatically.

I don't want rails to convert my less files to css, I rather codekit do it.

if I precompile the assets via

rake assets:precompile

I get

rake aborted!
cannot load such file -- less

How do I exclude a specific folder/file types from precompiling? (all my less files are in app/assets/stylesheets/less and the css (which I do want to be precompiled) are in app/assets/stylesheets/css

update

deleting application.less solves this but how do I excluding it from processing in the first place?

Nick Ginanto
  • 31,090
  • 47
  • 134
  • 244

2 Answers2

20

From the Asset Pipeline guide:

The default matcher for compiling files includes application.js, application.css and all non-JS/CSS files (i.e., .coffee and .scss files are not automatically included as they compile to JS/CSS):

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

If you have other manifests or individual stylesheets and JavaScript files to include, you can add them to the precompile array:

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

So, I would say that your solution is to modify config.assets.precompile to exclude .less files. Maybe something like this (in a suitable environment file, like config/environments/production.rb):

config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css', '.less']) }, /application.(css|js)$/ ]
MrTheWalrus
  • 9,670
  • 2
  • 42
  • 66
  • 1
    This fails because Rails doesn't know what to do with the `less` files. Adding the `less-rails` gem to your app might remove the error but is not the solution you've asked in the question. – Kashyap Oct 23 '12 at 12:23
  • ok correction - this works when I put it in production.rb.. not it application.rb.. any only with bundle exec – Nick Ginanto Oct 27 '12 at 15:27
1

If your directory structure under the app/assets folder is so:

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

Then, in your application.css file, there must be a directive that says *= require_tree . This tells rails to scan all the files/directories and try to compile all the files into one css file.

Change this to *= require_directory ./css and it will load the files under the css directory for compilation.

Kashyap
  • 4,696
  • 24
  • 26