【问题标题】:Compass/Sinatra Loading ModulesCompass/Sinatra 加载模块
【发布时间】:2012-06-02 00:26:49
【问题描述】:

我正在尝试在我的 SCSS 文件中加载 CSS3 和重置模块,但在尝试导入任何 Compass 特定模块时出现错误。

Sinatra 应用程序:

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

style.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 应用程序中?

【问题讨论】:

    标签: css ruby sinatra sass compass-sass


    【解决方案1】:

    在您的 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,或者你认为有用的东西:Better Compass integration for Sinatra (extracted from BigBand)

    在模块化 Modular App 中,我使用类似:

    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框架中无耻窃取的

    【讨论】:

      【解决方案2】:

      我认为你应该这样做:

      $ gem install compass
      $ compass create
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-17
        相关资源
        最近更新 更多