我正在尝试将Bootstrap添加到Sinatra应用程序中.我有设置路由编译bootstrap.less和responsive.less.在Web浏览器中单独加载两个样式表按预期方式工作.但是当我尝试在html页面中使用它们时,我的应用程序就会挂起.我只能停止申请kill -9.
似乎以某种方式减少导入和多个样式表会导致应用程序挂起.我能够找出问题所在:
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
Run Code Online (Sandbox Code Playgroud)
意见/ index.haml
!!! 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
Run Code Online (Sandbox Code Playgroud)
意见/ style1.less
@import "mixins.less";
@import "shadows.less";
@color: #00eeff;
h1 {
color: @color;
}
Run Code Online (Sandbox Code Playgroud)
意见/ mixins.less
.box-shadow(@shadow) {
-webkit-box-shadow: @shadow;
-moz-box-shadow: @shadow;
box-shadow: @shadow;
}
Run Code Online (Sandbox Code Playgroud)
意见/ shadows.less
h1 {
.box-shadow(6px 6px 3px #888);
}
Run Code Online (Sandbox Code Playgroud)
意见/ style2.less
@color: #ccff00;
p {
color: @color;
}
Run Code Online (Sandbox Code Playgroud)
访问索引页面会挂起Sinatra.如果我注释掉style2.less的html页面或内联shadows.less或mixins.less在style1.less页面加载预期.
知道可能是什么问题或我如何进一步调试这个问题?
我拿走了你的文件并对它们做了一些小改动:
style2.css为,style2.less以便我可以在其上使用 Less,并最终使用正确的 css 语法下载 style2.css ---它无法与其他扩展一起使用。Less.paths << settings.views。因此,通过这些更改,Sinatra 应用程序不再挂起。