我想将Bootstrap添加到Sinatra应用程序。我有设置路线来编译bootstrap.less
和responsive.less
。分别在Web浏览器中加载这两个样式表可以正常工作。但是当我尝试在html页面中使用它们时,我的应用程序挂起。我只能通过kill -9
停止申请。较少挂起Sinatra应用程序
似乎有点少进口和多个样式表会导致应用程序挂起。我能够隔离问题:
!!! 5
%html
%head
%title Hello World
%link{'rel' => 'stylesheet', 'href' => 'style1.css', 'type' => 'text/css'}
%link{'rel' => 'stylesheet', 'href' => 'style2.css', 'type' => 'text/css'}
%body
%h1 Hello World
%p Hello World
的意见/ style1.less
app.rb
require 'rubygems'
require 'bundler/setup'
require 'sinatra'
require 'less'
get '/' do
haml :index
end
get '/style1.css' do
less :style1, :paths => ['views']
end
get '/style2.css' do
less :style2, :paths => ['views']
end
的意见/ index.haml
@import "mixins.less";
@import "shadows.less";
@color: #00eeff;
h1 {
color: @color;
}
组的意见/ mixins.less
.box-shadow(@shadow) {
-webkit-box-shadow: @shadow;
-moz-box-shadow: @shadow;
box-shadow: @shadow;
}
的意见/ shadows.less
h1 {
.box-shadow(6px 6px 3px #888);
}
的意见/ style2.less
@color: #ccff00;
p {
color: @color;
}
访问索引页挂起西纳特拉。如果我在html页面中注释掉style2.less
或在style1.less
中注释掉shadows.less
或mixins.less
,则页面按预期加载。
任何想法可能是什么问题或如何进一步调试?
+1:好的问第一个问题。 –
也许尝试在这里的第一个答案中看到'Less.paths << settings.views':http://stackoverflow.com/questions/9606703/parsing-less-options-in-a-sinatra-app。直接告诉Less配置对象对我来说很有意义。另外我相信'路径:[“views”]'是多余的,只有在您导入的较少文件位于'/ views'之外的地方时才会使用。 – danneu
'paths => ['views']'不是冗余的。 Less编译器需要解析其导入。 @danneu提到的问题是关于倾斜宝石中的bug,它已经在git的最新版本中解决了。 – stijnvn