首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sinatra-assetpack未在Classic类型Sinatra应用程序中编译较少的文件

Sinatra-assetpack未在Classic类型Sinatra应用程序中编译较少的文件
EN

Stack Overflow用户
提问于 2012-11-04 11:55:41
回答 2查看 747关注 0票数 2

我想不出该怎么做。我所有的主.less文件都在/app/css/less中,@import文件在/app/css/less/bootstrap中。我的主样式表是/app/css/less/style.less,它应该编译成'/public/css/style.css‘。

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

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

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

****layout.haml

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

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

代码语言:javascript
复制
link rel="stylesheet" href="/css/style.496718.css" media="screen"

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

注意: git分支,在Gemfile中引用,是'pbaker‘分支的副本,修复了较少的支持(假设)。我已经尝试了标准的gem和其他版本,都没有任何运气。

可能的原因是什么?

注:可以在here上找到一个相关的问题,但不是重复的(因为它只涉及@import问题)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-05 19:36:45

我终于找到了问题所在,在运行bundle package时,我不得不使用--all选项。因此,bundle package --all为我的sinatra-assetpack gem的自定义git分支创建了一个本地缓存,现在所有工作都“如广告所示”:)

票数 0
EN

Stack Overflow用户

发布于 2013-01-29 20:49:45

作为另一种选择(对于谷歌的后代来说),最近在AssetPack gem上有很多工作(现在内置的支持更少了)。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13215922

复制
相关文章

相似问题

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