【问题标题】:Does Sinatra come with sass out the box?Sinatra 是否带有 sass 开箱即用的功能?
【发布时间】:2016-08-13 03:17:53
【问题描述】:

我从未与 Sinatra 合作过(但我曾与 Rails 合作过),并且对 Sass 是否随 Sass 开箱即用感到困惑,这篇文章 here 给我的印象是从 1.1 版开始,它确实如此,然而,所有其他的东西(教程、文章等)给我的印象是需要安装和需要 gem。看看docs,它似乎确实是开箱即用的。但是我不清楚如何实现它,它说:

SCSS Templates

Dependency  sass
File Extension  .scss
Example scss :stylesheet, :style => :expanded

在我的代码中,我将require 'sass' 放在了config.ru 的顶部,并且 scss :stylesheet, :style => :expanded

看起来像这样:

require 'sinatra'
require "sinatra/param"
require "json"
require 'sass'

set :raise_sinatra_param_exceptions, true

disable :show_exceptions
disable :raise_errors

scss :stylesheet, :style => :expanded

helpers do
   //....stuff
end

但它似乎不起作用。 Sass 真的是开箱即​​用的吗?如果是这样,我该如何设置?还是我需要像在 Rails 中一样安装 gem?

更新: 这是我当前的文件结构:

【问题讨论】:

    标签: sass sinatra


    【解决方案1】:

    scss 方法的调用需要在路由内,而不是像您在此处那样位于顶层。你需要这样的东西:

    get '/style'
      scss :stylesheet
    end
    

    然后在你的其他模板中你会有这样的东西(这个例子是使用 Haml):

    !!!
    %title Hello
    %link{:rel => 'stylesheet', :href => url('style')}
    

    Sinatra 包含渲染 Scss 和 Sass 的方法,但不要自动安装 gem 或需要任何东西。

    【讨论】:

    • 感谢您的回复!为了澄清 - 您是否只是注意到 Sinatra 不会自动安装 gem(但确实应该安装)?或者您是在说“不要安装 gem”(就像我根本不应该安装 gem)?另外我不熟悉使用Haml,我只是使用常规的index.html文件,头部的链接应该看起来像<link href="assets/sass/style.scss" rel="stylesheet">吗?
    • 我已经从我的文件中删除了scss :stylesheet, :style => :expanded 并添加了get 'sass/style.scss' do scss :stylesheet end,但它不起作用。该路线应该将 sinatra 指向我的 .scss 所在的位置吗?
    • @HolyMoly 是的,如果你想使用 Sass/Scss,你需要安装 gem。以 %link... 开头的 Haml 行将生成与您的 link HTML 元素几乎相同的内容,所以这也是正确的。
    • 我应该指出,这是使用 Scss 的方式与您在 Rails 中使用的方式略有不同。此代码将处理您的.scss 文件并将其转换为CSS在每个请求中。 Rails 有点复杂,在开发环境中会像这样动态转换代码,但在生产环境中会创建一个静态文件,而不是每次都重新处理。如果您想要一种更像 Rails 的方式来使用 Sinatra 处理 Scss,您可以查看类似 sprockets 的内容。
    • 当您执行scss :stylesheet 时,Sinatra 将期望在您的views 目录中有一个文件stylesheet.scss。因此,如果它位于 assets 目录中,它将无法工作。 HTML 中的href 应该匹配get 中的路由,传递给scss 的arg 应该匹配views 下的文件位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 2011-03-08
    • 2011-10-12
    • 2011-03-28
    • 1970-01-01
    相关资源
    最近更新 更多