我想將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