2016-04-01 5 views
0

オートプレフィクサーを動作させることができません。それは私のCSSコードでは呼び出されますが、結果はありません。Sinatraアプリでrails-autoprefixerを使う方法は?

シナトラアプリのための命令がここにあります - https://github.com/ai/autoprefixer-rails

application.rb

class Application < Sinatra::Base 
    # Load path and gems/bundler 
    $LOAD_PATH << File.expand_path(File.dirname(__FILE__)) 
    require "bundler" 
    Bundler.require 
    register Sinatra::AssetPipeline 
    assets = Sprockets::Environment.new 
    AutoprefixerRails.install(assets)  
    ### other 

    # Actual Rails Assets integration, everything else is Sprockets 
    if defined?(RailsAssets) 
    RailsAssets.load_paths.each do |path| 
     settings.sprockets.append_path(path) 
    end 
    end 
end 

私は宝石の源に見て、そのような例を見つけました:

@assets = Sprockets::Environment.new 
@assets.append_path(@dir.join('app/app/assets/stylesheets')) 
AutoprefixerRails.install(@assets, browsers: ['chrome 25']) 

または

@dir = Pathname(__FILE__).dirname 
@css = @dir.join('app/app/assets/stylesheets/test.css').read 
AutoprefixerRails.process(@css) 

答えて

1

見た目では、スプロケットは正しく設定されていません。 Sprockets::Enviromentはブロックを使用し、 アセットへのパスを設定する必要があります。これは私が ために、この例を使用したフォルダ構造である:ここで

├── app.rb 
├── assets 
│   ├── some_more_styles.css 
│   └── styles.css 
└── views 
    └── index.erb 

は私がスプロケット環境の構成方法である:

# app.rb 
require 'autoprefixer-rails' 

assets = Sprockets::Environment.new do |env| 
    # This ensures sprockets can find the CSS files 
    env.append_path "assets" 
end 

AutoprefixerRails.install(assets) 

スプロケットはシナトラで動作するように取得するための1つの以上のステップがあります。 アセットのそれぞれを手動でルーティングする必要があります。 index.erbパス/assets/styles.cssでファイルをロードしようと <link>タグを持っている場合、それが app.rbで定義されていない場合たとえば、 そのルートは404 Not Foundエラーになります。これらの404エラーを回避するために、そのようにルートを定義します。私はあなたの 参照用 https://gist.github.com/kgrz/5caf63f827e5a6181597cefae484a515への完全なコードをアップロードした

# app.rb 
get '/assets/*' do 
    # The env["PATH_INFO"] results in the string '/assets/styles.css' in 
    # our example. We need to remove the '/assets' part since Sprockets 
    # will take care of appending it when invoked on the next line. 

    env["PATH_INFO"].sub!("/assets", "") 
    assets.call(env) 
end 

。これは順番にはSinatra Recipes article on Sprocketsに基づいています

+0

ありがとうございます。 RailsAssetsを使用していることを忘れてしまいました。 私はCSSにコンパイルされたscssファイルを持っています。 この場合、autoprefixerを使用する方法は? – skrypalyk

+0

私はRailsAssetsと親戚ではないので、そこには大いに役立つことはできません:( – Kashyap

関連する問題