7

我正在尝试将 Bootstrap 添加到 Sinatra 应用程序。我已经设置了编译路径bootstrap.lessresponsive.less. 在 Web 浏览器中分别加载两个样式表按预期工作。但是当我尝试在 html 页面中使用它们时,我的应用程序会挂起。我只能用 停止应用程序kill -9

似乎不知何故,较少的导入和多个样式表会导致应用程序挂起。我能够隔离问题:

应用程序.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

!!! 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

@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;
}

访问索引页面会挂起 Sinatra。style2.less如果我在 html 页面或内联shadows.less或页面加载mixins.lessstyle1.less按预期注释掉。

知道可能是什么问题或如何进一步调试吗?

4

1 回答 1

1

我拿走了你的文件并对它们做了一些小改动:

  • 我重命名为style2.cssstyle2.less以便可以在其上使用 Less,并最终使用正确的 css 语法下载 style2.css ---它不适用于其他扩展。
  • 而且,我告诉 Less 搜索指令的路径是 Sinatra 的视图路径:Less.paths << settings.views.

因此,通过这些更改,Sinatra 应用程序停止挂起。

于 2013-02-05T18:29:39.247 回答