2012-12-14 32 views
7

Tôi đang cố gắng thêm Bootstrap vào ứng dụng Sinatra. Tôi có các tuyến đường thiết lập để biên dịch bootstrap.lessresponsive.less. Tải hai bản định kiểu riêng biệt trong trình duyệt web hoạt động như mong đợi. Nhưng khi tôi cố gắng sử dụng chúng trong một trang html, ứng dụng của tôi bị treo. Tôi chỉ có thể dừng ứng dụng với kill -9.Ít treo ứng dụng Sinatra

Dường như bằng cách nào đó, ít nhập hơn và nhiều biểu định kiểu gây ra lỗi treo của ứng dụng. Tôi đã có thể cô lập các vấn đề:

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 

views/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 

views/style1.less

@import "mixins.less"; 
@import "shadows.less"; 

@color: #00eeff; 

h1 { 
    color: @color; 
} 

views/mixins.less

.box-shadow(@shadow) { 
    -webkit-box-shadow: @shadow; 
    -moz-box-shadow: @shadow; 
    box-shadow: @shadow; 
} 

views/shadows.less

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

views/style2.less

@color: #ccff00; 

p { 
    color: @color; 
} 

Truy cập vào trang index treo Sinatra. Nếu tôi nhận xét ra style2.less trong trang html hoặc nội tuyến shadows.less hoặc mixins.less trong style1.less trang tải như mong đợi.

Bất kỳ ý tưởng nào có thể là vấn đề hoặc cách tôi có thể gỡ lỗi thêm?

+3

+1: Câu hỏi đầu tiên được đặt ra. –

+1

Có lẽ thử 'Less.paths << settings.views' trong câu trả lời đầu tiên ở đây: http://stackoverflow.com/questions/9606703/parsing-less-options-in-a-sinatra-app. Trực tiếp nói với đối tượng Less config có ý nghĩa với tôi. Ngoài ra tôi tin rằng 'đường dẫn: [" quan điểm "]' là dư thừa và chỉ được sử dụng nếu bạn nhập ít tập tin được ngồi ở đâu đó khác hơn là '/ views'. – danneu

+0

'paths => ['views']' không phải là redunant. Nó cần bởi trình biên dịch Less để giải quyết việc nhập khẩu của nó. Câu hỏi @danneu đề cập đến là về một lỗi trong đá quý nghiêng đã được giải quyết trong phiên bản mới nhất từ ​​git. – stijnvn

Trả lời

1

tôi mất tập tin của bạn và thực hiện thay đổi nhỏ đối với họ:

  • tôi đổi tên style2.css để style2.less vì vậy tôi có thể sử dụng ít về nó, và cuối cùng là tải về style2.css với cú pháp css đúng --- Nó không hoạt động với tiện ích mở rộng khác.
  • Và, tôi đã nói với Less rằng đường dẫn để tìm kiếm chỉ thị là đường dẫn quan điểm của Sinatra: Less.paths << settings.views.

Vì vậy, với những thay đổi này, ứng dụng Sinatra đã ngừng treo.

+1

Tệp '* .css' là một lỗi trong câu hỏi của tôi. Tôi chỉ sử dụng các tệp '* less'. Tôi đã cập nhật câu hỏi của mình. Treo không phải lúc nào cũng xảy ra. Có vẻ như tôi đang đánh một số điều kiện đua trong trình biên dịch ít hơn hoặc đá quý ruby. Cảm ơn đề nghị của bạn anyway. – stijnvn

Các vấn đề liên quan