2

CSS3 をロードして SCSS ファイル内のモジュールをリセットしようとしていますが、Compass 固有のモジュールをインポートしようとするとエラーが発生します。

シナトラ アプリ:

require 'rubygems'
require 'sinatra'
require 'sass'
require 'compass'

configure do
  set :scss, {:style => :compact, :debug_info => false}
  Compass.add_project_configuration(File.join(Sinatra::Application.root, 'config',     'compass.rb'))
end

get '/css/:name.css' do
  content_type 'text/css', :charset => 'utf-8'
  scss(:"stylesheets/#{params[:name]}" )
end

スタイル.scss:

@import "compass/reset";
@import "compass/css3";

エラーメッセージ:

Sass::SyntaxError at /css/style.css
File to import not found or unreadable: compass/reset. Load path: /Users/work/repos/mysite

これらのモジュールを自動的にプルするためにインストールできる gem はありますか、それとも Compass ファイルを Sinatra アプリケーションに移動する必要がありますか?

4

2 に答える 2

4

compass.rb で正しい設定を行った後、通常は次のようなものを追加するだけで十分です:

   get '/stylesheets/:name.css' do
    content_type 'text/css', :charset => 'utf-8'
    sass params[:name].to_sym, Compass.sass_engine_options
   end

あなたのルートに。 Sinatra IntegrationSample project、または役に立つと思われるもの: Sinatra のより良いコンパス統合 (BigBand から抽出)

モジュラーモジュラーアプリでは、次のようなものを使用します:

module Assets
  # #Sass/Compass Handler
  class Stylesheets < Sinatra::Base
    register  CompassInitializer
    get '/stylesheets/:name.css' do
      content_type 'text/css', :charset => 'utf-8'
      sass params[:name].to_sym, Compass.sass_engine_options
    end
  end
end

libフォルダにファイルがありますcompass_plugin.rb

module CompassInitializer
  def self.registered(app)
require 'sass/plugin/rack'
Compass.configuration do |config|
  config.project_path = Padrino.root
  config.sass_dir = "app/stylesheets"
  config.project_type = :stand_alone
  config.http_path = "/"
  config.css_dir = "public/stylesheets"
  config.images_dir = "public/images"
  config.javascripts_dir = "public/javascripts"
  config.output_style = :compressed
end
Compass.configure_sass_plugin!
Compass.handle_configuration_change!
app.use Sass::Plugin::Rack
  end
end

Padrinoフレームワークから恥知らずに盗まれたもの

于 2012-05-27T05:13:40.887 に答える
0

私はあなたがすべきだと思います:

$ gem install compass
$ compass create
于 2012-05-27T05:16:04.827 に答える