我刚刚开始使用我的第一个Sinatra应用程序,而我正试图让Guard-Less启动并运行。我已经修复了一个rb-readline issue,它阻止了对.less文件的更改以更新我的CSS,但是我也无法将已编译的CSS文件输出到正确的目录中。 Guard-Less说你可以传递一个:output
选项来保护,以确保CSS被编译到正确的目录,但我还没有让它工作一次。 CSS只编译到与LESS文件相同的目录。
我正在本地运行foreman start
的应用。
Guardfile:
# A sample Guardfile
# More info at https://github.com/guard/guard#readme
guard 'less',
:all_on_start => true,
:output => 'public/assets/css' do
watch(%r{^less/(.+\.less)$})
end
的Gemfile:
source 'https://rubygems.org'
gem 'sinatra'
gem 'shotgun'
gem 'therubyracer'
gem 'rb-readline'
gem 'less', '~>1.2'
gem 'haml'
gem 'rb-fsevent', '~> 0.9'
gem 'guard-less'
Procfile:
guard: bundle exec guard
web: bundle exec ruby bootstrap.rb -p $PORT
bootstrap.rb文件:
require 'rubygems'
require 'sinatra/base'
require 'haml'
class MyApp < Sinatra::Base
get '/' do
haml :index
end
end
MyApp.run!
guard show
的输出证明该选项正在被识别:
$ guard show
+---------+--------+--------+-----------------------+
| Group | Plugin | Option | Value |
+---------+--------+--------+-----------------------+
| Default | Less | output | "public/assets/css" |
+---------+--------+--------+-----------------------+
最糟糕的是,我可以将.less文件保留在与输出css相同的目录中,但这让我感到烦恼,我想让它工作。有什么想法吗?