Ruby on rails 3 从资源中排除文件:在rails中预编译
我使用codekit编写更少的代码,然后它会自动转换为css 我不希望rails将我的较少文件转换为css,我宁愿使用codekit 如果我通过Ruby on rails 3 从资源中排除文件:在rails中预编译,ruby-on-rails-3,ruby-on-rails-3.2,less,asset-pipeline,precompile,Ruby On Rails 3,Ruby On Rails 3.2,Less,Asset Pipeline,Precompile,我使用codekit编写更少的代码,然后它会自动转换为css 我不希望rails将我的较少文件转换为css,我宁愿使用codekit 如果我通过 rake assets:precompile 我明白了 rake aborted! cannot load such file -- less 如何从预编译中排除特定文件夹/文件类型?(我所有的less文件都在app/assets/stylesheets/less中,css(我确实希望预编译)在app/assets/stylesheets/css中
rake assets:precompile
我明白了
rake aborted!
cannot load such file -- less
如何从预编译中排除特定文件夹/文件类型?(我所有的less文件都在app/assets/stylesheets/less中,css(我确实希望预编译)在app/assets/stylesheets/css中
更新
删除application.less
可以解决这一问题,但首先我如何将其排除在处理之外?指南:
编译文件的默认匹配器包括application.js,
application.css和所有非JS/css文件(即.coffee和.scss
文件编译为JS/CSS时不会自动包含:
如果您有其他清单或单独的样式表和JavaScript
要包含的文件,可以将它们添加到预编译数组:
因此,我想说您的解决方案是修改config.assets.precompile
以排除.less
文件。可能是这样的(在合适的环境文件中,如config/environments/production.rb
):
如果应用程序/资产文件夹下的目录结构为:
application.css
/css
(generated by code kit)
|...home.css
|...index.css
/less
|...home.less (assuming this is the extension)
|...index.less
然后,在application.css文件中,必须有一个指令,指示*=require\u tree。
这告诉rails扫描所有文件/目录,并尝试将所有文件编译成一个css文件
将此更改为
*=require_目录。/css
,它将加载css
目录下的文件进行编译。此操作失败,因为Rails不知道如何处理less
文件。将less Rails
gem添加到应用程序可能会删除错误,但这不是您在问题中提出的解决方案on.ok correction-当我把它放在production.rb.中时,这是有效的。而不是it application.rb.任何仅与bundle exectaly相同:(值得注意的是,我的树是/css/application.css和/less/application.lessAh!这将失败,因为application.css是编译子资产的主文件。
config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js']
config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css', '.less']) }, /application.(css|js)$/ ]
application.css
/css
(generated by code kit)
|...home.css
|...index.css
/less
|...home.less (assuming this is the extension)
|...index.less