首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Compass/Sinatra加载模块

Compass/Sinatra加载模块
EN

Stack Overflow用户
提问于 2012-05-27 09:40:58
回答 2查看 1.4K关注 0票数 2

我试图在我的SCSS文件中加载CSS3和重置模块,但在尝试导入任何特定于指南针的模块时遇到错误。

Sinatra App:

代码语言:javascript
复制
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:

代码语言:javascript
复制
@import "compass/reset";
@import "compass/css3";

错误消息:

代码语言:javascript
复制
Sass::SyntaxError at /css/style.css
File to import not found or unreadable: compass/reset. Load path: /Users/work/repos/mysite

有没有可以安装的gem来自动拉出这些模块,或者必须将Compass文件移动到Sinatra应用程序中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-27 13:13:41

在您的compass.rb中完成正确的配置后,通常足以添加以下内容:

代码语言:javascript
复制
   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中,我使用类似于:

代码语言:javascript
复制
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

代码语言:javascript
复制
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框架中窃取的

票数 4
EN

Stack Overflow用户

发布于 2012-05-27 13:16:05

我觉得你应该:

代码语言:javascript
复制
$ gem install compass
$ compass create
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10771059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档