首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scss/Sass不能与sinatra-assetpack一起使用

Scss/Sass不能与sinatra-assetpack一起使用
EN

Stack Overflow用户
提问于 2012-05-03 00:01:50
回答 1查看 1.2K关注 0票数 1

我正在编写一个classic style sinatra app,并试图用sinatra-assetpack打包我的scss文件,但它不工作。

这是我的主web文件:

代码语言:javascript
复制
require 'rubygems'
require 'sinatra'
require 'haml'
require 'sass'
require 'compass'
require 'sinatra/assetpack'

set :root, File.dirname(__FILE__)
set :environment, ENV["RACK_ENV"] || "development"

configure do
  Compass.configuration do |config|
    config.project_path = File.dirname(__FILE__)
    config.sass_dir = 'views/stylesheets'
  end

  set :haml, { :format => :html5 }
  set :scss, Compass.sass_engine_options

  assets {
    serve '/javascripts', from: 'public/javascripts'
    serve '/stylesheets', from: '/stylesheets'

    # The second parameter defines where the compressed version will be served.
    # (Note: that parameter is optional, AssetPack will figure it out.)
    js :lib, '/javascripts/script.js', [
      '/javascripts/lib/modernizr-2.5.3.js',
      '/javascripts/lib/underscore-min.js',
      '/javascripts/lib/slides.min.jquery.js',
      '/javascripts/lib/jquery.scrollTo-1.4.2-min.js'
    ]

    css :app, '/stylesheets/screen.css', [
      '/stylesheets/screen.css',
      '/fonts/meta.css'
    ]

    js_compression  :jsmin
    css_compression :sass
  }
end

我在我的布局文件中使用了这个:

代码语言:javascript
复制
= css :app, :media => 'screen'

screen.scss文件存储在/views/stylesheets/screen.scss中,meta.css存储在/public/fonts/meta.css中。对screen.css的引用是否不正确?他们应该从不同的目录提供服务吗?

我在我的主web文件中也有这个

代码语言:javascript
复制
get '/stylesheets/screen.css' do
  content_type 'text/css', :charset => 'utf-8'
  scss :'stylesheets/screen'
end

将其放入或移除并不能解决任何问题--这条路线是必要的吗?

EN

回答 1

Stack Overflow用户

发布于 2012-05-10 11:09:53

您不应该再保留您的get '/stylesheets/screen.css'路由。

我还注意到你的Gemfile / app文件中有指南针。Sinatra AssetPack注意到它与指南针不兼容。但是,您可以包含sinatra/support来使用它,比如他们的示例应用程序here

将您的serve '/stylesheets', from: '/stylesheets'语句更改为serve '/stylesheets', from: '/views/stylesheets',以反映您希望从何处提供sass文件。

在所有这些之后,您应该能够像下面这样为您的javascript和scss提供服务:

代码语言:javascript
复制
= css :app, :media => 'screen'
= js :lib
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10417451

复制
相关文章

相似问题

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