7

Bootstrap を Sinatra アプリケーションに追加しようとしています。コンパイルするルートをセットアップしbootstrap.lessresponsive.less. Web ブラウザーで 2 つのスタイルシートを別々に読み込むと、期待どおりに機能します。しかし、HTML ページでそれらを使用しようとすると、アプリケーションがハングします。でのみアプリケーションを停止できますkill -9

どういうわけか Less imports と複数のスタイルシートが原因でアプリケーションがハングするようです。問題を特定できました:

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

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

ビュー/影.less

h1 {
  .box-shadow(6px 6px 3px #888);
}

ビュー/style2.less

@color: #ccff00;

p {
  color: @color;
}

インデックス ページにアクセスすると、Sinatra がハングします。style2.lessHTMLページ、インライン、shadows.lessまたはページでコメントアウトすると、期待どおりにロードされます。mixins.lessstyle1.less

何が問題なのか、またはこれをさらにデバッグする方法はありますか?

4

1 に答える 1

1

私はあなたのファイルを取得し、それらに小さな変更を加えました:

  • Lessを使用できるように名前を変更style2.cssstyle2.less、最終的に正しいcss構文でstyle2.cssをダウンロードします---他の拡張機能では機能しませんでした。
  • そして、ディレクティブを検索するパスが Sinatra: のビュー パスであることを Less に伝えましたLess.paths << settings.views

したがって、これらの変更により、Sinatra アプリケーションは停止しなくなりました。

于 2013-02-05T18:29:39.247 に答える