2

我无法弄清楚如何做到这一点。我所有的主要 .less 文件都在 中/app/css/less,@import'ed 文件在/app/css/less/bootstrap. 我的主要样式表/app/css/less/style.less应该编译为“/public/css/style.css”。

使用经典的 Sinatra 应用程序结构(不是基础),我在各种文件中有以下内容(省略了不相关的代码):****Gemfile

# encoding: utf-8
source :rubygems

gem 'sinatra'
gem 'thin'
gem 'less'
gem 'therubyracer'
gem 'haml', '~> 3.2.0.rc.1'
gem 'sinatra-partial'
gem 'sinatra-assetpack', :git => 'git://github.com/rupe/sinatra-assetpack.git', :require => 'sinatra/assetpack'

****myapp.rb

# encoding: utf-8

require 'rubygems'
require 'bundler/setup'

require 'sinatra'
require 'haml'
require 'sinatra/partial'
require 'sinatra/assetpack'
require 'less'

assets do
  Less.paths .lt.lt "#{settings.root}/app/css/less"
  Less.paths .lt.lt "#{settings.root}/app/css/less/bootstrap"
  serve '/css', from: '/app/css/less'
  css :style, [
    '/css/style.css'
  ]
  prebuild true
end

****布局.haml

!= css :style, :media => 'screen'

在提供的 html 中生成此样式表相关标记:

link rel="stylesheet" href="/css/style.496718.css" media="screen"

但实际上并不编译该文件style.49718.css。事实上,它根本不编译任何文件。

注意:Gemfile 中提到的 git 分支是修复了较少支持的“pbaker”分支的副本(据说)。我已经尝试过标准 gem 和其他版本,但都没有任何运气。

可能的原因是什么?

@import注意:可以在此处找到一个相关的问题,但不重复(因为它仅指问题) 。

4

2 回答 2

0

终于搞清楚是什么问题了,--all运行的时候不得不使用这个选项bundle package。所以bundle package --all创建了我的自定义 git fork sinatra-assetpackgem 的本地缓存,现在所有的工作都“像宣传的那样”:)

于 2012-11-05T11:36:45.457 回答
0

作为替代方案(对于 google 的后代),最近在 AssetPack gem 上做了很多工作(现在内置的支持较少)。

这个 Gist 有一个支持较少的完整示例:https ://gist.github.com/4652773 。

于 2013-01-29T12:49:45.290 回答