【问题标题】:Sinatra SASS custom directorySinatra SASS 自定义目录
【发布时间】:2012-09-06 13:26:26
【问题描述】:

如何配置 Sinatra 以使用自定义 SCSS 目录? 我尝试了以下解决方案,但这对我不起作用。

class SassEngine < Sinatra::Base

set :views, File.dirname(__FILE__) + '/sass'

get '/sass/*.scss' do
    filename = params[:splat].first
    sass filename.to_sym
end

end

【问题讨论】:

    标签: ruby sinatra


    【解决方案1】:

    实际上官方文档中有专门针对这个用例的部分。

    为了方便起见,这里是代码(取自文档):

    set :views, :sass => 'views/sass', :haml => 'templates', :default => 'views'
    
    helpers do
      def find_template(views, name, engine, &block)
        _, folder = views.detect { |k,v| engine == Tilt[k] }
        folder ||= views[:default]
        super(folder, name, engine, &block)
      end
    end
    

    完成此配置后,您只需:

    get '/css/a_css_file.css' do
      sass :a_css_file
    end
    

    或更通用的方法:

    get '/css/*.css' do
      file = params[:splat].first
      sass file.to_sym
    end
    

    虽然最后一个不是一个好方法,但如果 调用不存在的文件。

    【讨论】:

    • 谢谢,那么,我应该把我的 .css 文件放在哪里?放入我的应用程序根目录中的 css 文件夹?
    • 你的意思是你的 sass 文件?无论您在 set :views 调用中定义的任何位置。通常我会建议app_root/views/sass(这是上面代码中的内容)
    【解决方案2】:

    我找到了解决办法。

    require 'sinatra'
    require 'dm-core'
    require 'dm-migrations'
    require 'haml'
    require 'sass'
    require 'shotgun'
    
    
    set :views, :scss => 'views/', :haml => 'template', :default => 'views'
    
     helpers do
       def find_template(views, name, engine, &block)
         _, folder = views.detect { |k,v| engine == Tilt[k] }
         folder ||= views[:default]
         super(folder, name, engine, &block)
       end
     end
    
    
    get '/css/:name.css' do
      scss :styles
    end
    
    
    get '/' do
      haml :index
    end
    

    所以你可以看到,而不是:

    get '/css/styles.css' do
      sass :styles
    end
    

    应该是:

    get '/css/:name.css' do
      scss :styles
    end
    

    然后我将styles.scss 放入我的/views 文件夹中。但是,您可以通过编辑 :scss => ' .scss 文件的路径来修改目标目录:

    set :views, :scss => 'views/', :haml => 'template', :default => 'views'
    

    【讨论】:

      猜你喜欢
      • 2012-08-30
      • 2011-02-24
      • 2013-05-08
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 2019-09-13
      • 1970-01-01
      相关资源
      最近更新 更多