gpt4 book ai didi

ruby - 减少挂起 Sinatra 应用程序

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:52 25 4
gpt4 key购买 nike

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

似乎 Less imports 和 multiple stylesheets 以某种方式导致应用程序挂起。我能够隔离问题:

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

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

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

最佳答案

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

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

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

关于ruby - 减少挂起 Sinatra 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com