Question

So I'm trying to use Compass and Asset Pack in a Sinatra app. My setup is the following:

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

With the line set :scss, Compass.sass_engine_options it seems to enable Compass, but this over rides the next line and I then can't use SCSS partials because it doesn't know the load path. Having them on the same line has the same effect.

TL:DR: I can't get Compass and SCSS Partials to work together with the Asset Pack

No correct solution

OTHER TIPS

Try merging the :scss options? It looks like you're overriding with your second set call:

set :scss, Compass.sass_engine_options.merge({ :load_paths => [ "#{Application.root}/assets/css" ] })

Also, the Compass configuration and set calls should be inside a configure block.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top