我使用codekit编写less,然后自动将其转换为css。
我不希望rails将我较少的文件转换为css,我宁愿使用codekit。
如果我通过
预编译资产rake assets:precompile
我得到了
rake aborted!
cannot load such file -- less
如何从预编译排除特定文件夹/文件类型? (我所有较少的文件都在app / assets / stylesheets / less中,而css(我确实想要预编译)在app / assets / stylesheets / css中
更新
删除application.less
解决了这个问题,但如何将其从处理中排除?
答案 0 :(得分:19)
来自Asset Pipeline指南:
编译文件的默认匹配器包括application.js, application.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)$/ ]
答案 1 :(得分:1)
如果app / assets文件夹下的目录结构是这样的:
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
目录下的文件进行编译。