Разбор LESS-опций в приложении Sinatra - PullRequest
2 голосов
/ 07 марта 2012

У меня проблемы с изменением пути, который LESS использует для включения импорта. Мой файл маршрутов имеет

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

Однако, если я включу внешний файл less с @import в мою таблицу стилей, компилятор LESS не сможет найти файл. Я поместил копию в каталоги views и public/css, но он все еще не может ее найти. Однако он может найти простые .css файлы в public\css.

Ответы [ 3 ]

1 голос
/ 06 мая 2012

Я ударил это сегодня и смог решить это так:

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
0 голосов
/ 14 декабря 2012

Передача параметров в Less должна быть исправлена ​​в наклоне этим коммитом 70465f9 .

Если вы используете упаковщик, добавление следующей строки в Gemfile должно решить проблему:

gem 'tilt', :git => 'git://github.com/rtomayko/tilt.git'
0 голосов
/ 08 марта 2012

Вы можете использовать что-то вроде этого здесь, которое я использую, чтобы забрать все файлы .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

Вам придется заменить scss на меньшее, чтобы оно заработало.

...