1

Sinatra アプリで Compass と Asset Pack を使用しようとしています。私のセットアップは次のとおりです。

require 'sinatra'
require 'bundler'
require 'sinatra/assetpack'
require 'sinatra/support'
require 'compass'

class Application < Sinatra::Base

  register Sinatra::AssetPack
  register Sinatra::CompassSupport
  register Sinatra::SimpleNavigation

  set :static, true
  set :root, File.dirname(__FILE__)
  set :public_folder, File.dirname(__FILE__) + '/public'
  set :scss, Compass.sass_engine_options
  set :scss, { :load_paths => [ "#{Application.root}/assets/css" ] }

  Compass.configuration do |config|
    config.sass_dir         = "assets/css"
    config.project_path     = root
    config.images_dir       = "assets/images"
    config.http_generated_images_path = "/images"
    config.fonts_dir = "assets/fonts"
  end


  assets {
    serve '/fonts',  from: 'assets/fonts'
    serve '/js',     from: 'assets/js'        # Default
    serve '/css',    from: 'assets/css'       # Default
    serve '/images', from: 'assets/images'    # Default

    # The second parameter defines where the compressed version will be served.
    # (Note: that parameter is optional, AssetPack will figure it out.)
    js :app, '/js/app.js', [
      '/js/*',
    ]

    css :application, '/css/application.css', [
      '/css/style.css'
    ]

    js_compression  :jsmin    # :jsmin | :yui | :closure | :uglify
    css_compression :sass   # :simple | :sass | :yui | :sqwish
  } 
  # Routes and things here
  end

この行set :scss, Compass.sass_engine_optionsではコンパスを有効にしているように見えますが、これは次の行に乗り上げ、ロード パスがわからないため、SCSS パーシャルを使用できません。それらを同じ行に置くと、同じ効果があります。

TL:DR:コンパスと SCSS パーシャルをアセット パックと連携させることができません

4

1 に答える 1