解析Sinatra应用程序中的LESS选项

时间:2012-03-07 17:58:48

标签: sinatra less

我无法更改LESS用于包含导入的路径。我的路线文件有

get "/css/main.css" do
  less :main, :paths => ["public/css"]
end

但是,如果我在样式表中包含带有@import的外部较少文件,则LESS编译器无法找到该文件。我在views路径和public/css目录中都放了一个副本,但它仍然无法找到它。但它可以在public\css中找到简单的.css文件。

3 个答案:

答案 0 :(得分:1)

今天我点击了这个,并且能够像这样解决它:

require 'less'
require 'sinatra/base'

class App < Sinatra::Base
  # Make LESS @import statements work
  Less.paths << settings.views

  # Use LESS for CSS
  get '/stylesheets/:style.css' do
    less(params[:style].to_sym)
  end
end

答案 1 :(得分:0)

你可以在这里使用这样的东西,我用它来获取所有的.css文件,无论是scss还是普通的css(即它默认情况下首先公开,然后继续检查视图):

get '/css/:file.css' do                                                                                                                                               
  halt 404 unless File.exist?("views/#{params[:file]}.scss")                                                                                                          
  time = File.stat("views/#{params[:file]}.scss").ctime                                                                                                               
  last_modified(time)                                                                                                                                                 
  scss params[:file].intern                                                                                                                                           
end

您必须使用less替换scss才能使其正常工作。

答案 2 :(得分:0)

将选项传递给Less应通过此提交70465f9进行修正。

如果您使用的是捆绑包,请在Gemfile中添加以下行以解决问题:

gem 'tilt', :git => 'git://github.com/rtomayko/tilt.git'