Kullanma 3.1 varlıklar boru hattı koşullu olarak bazı css kullanmak için Raylar | Netgez.com
SORU
20 AÄžUSTOS 2011, CUMARTESÄ°


Kullanma 3.1 varlıklar boru hattı koşullu olarak bazı css kullanmak için Raylar

İlk solo Raylar uygulamam Rails 3.1 kullanılarak inşa sürecinde ediyorum.rc5. Benim sorunum sitemde çeşitli CSS dosyaları koşullu olarak işlemek istiyorum. Ben kullanıyorum Blueprint CSS ve çalıştığım için dişliler/raylar işlemek screen.css çoğu zaman, print.css sadece baskı ve ie.css sadece siteye erişilen Internet Explorer.

Ne yazık ki, application.css *= require_tree komut listesi varsayılan tatsız bir CSS karmakarışık assets/stylesheets dizin ve sonuçları her şeyi içerir. Benim geçerli çözüm ben her şeyi tek tek belirttiğiniz kaba kuvvet yöntemi bir tür

Uygulamada.css:

*= require_self
*= require home.css
...
*= require blueprint/screen.css

Benim stil kısmi (haml):

<!--[if lt IE 9]
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
![endif]-->
= stylesheet_link_tag "application"
= stylesheet_link_tag 'blueprint/print', media: 'print'
<!--[if lt IE8]]
= stylesheet_link_tag 'blueprint/ie'
![endif]-->
= javascript_include_tag "application"

Bu özellikle güzel değil ama çalışır. Buraya kadar gelmek için bile arama birkaç saat yaptım ama sadece ben kaçırmıştım bunu yapmanın kolay bir yolu var umuyorum. Eğer seçici olarak belirli bir dizin (alt dizinleri dahil olmadan) işlemek olsaydım bile, tüm süreç çok daha az sert yapar.

Teşekkürler!

CEVAP
1 EYLÃœL 2011, PERÅžEMBE


Daha az sert ve geleceğe yönelik hala varlık boru hattı kullanıyorum ama stil gruplandırılmış alarak yapmak için bir yol buldum. Çözüm çok daha basit değil, ama bu çözüm otomatik olarak yeniden düzenleyin bütün yapısını yeniden zorunda kalmadan yeni stil eklemek için izin verir.

Ne yapmak istediğinizi ayrı bildirim dosyaları toplantıyı bitirmek için kullanın. İlk yeniden düzenlemek için app/assets/stylesheets klasörü:

app/assets/stylesheets
 -- all
     -- your_base_stylesheet.css
 -- print
     -- blueprint
         -- print.css
     -- your_print_stylesheet.css
 -- ie
     -- blueprint
          ie.css
     -- your_ie_hacks.css
 -- application-all.css
 -- application-print.css
 -- application-ie.css

Size üç bildirim dosyalarını düzenlemek:

/**
 * application-all.css
 *
 *= require_self
 *= require_tree ./all
 */

/**
 * application-print.css
 *
 *= require_self
 *= require_tree ./print
 */

/**
 * application-ie.css
 *
 *= require_self
 *= require_tree ./ie
 */

Bir sonraki uygulama düzeni dosyası güncelleme:

<%= stylesheet_link_tag "application-all", :media => "all" %>
<%= stylesheet_link_tag "application-print", :media => "print" %>

<!--[if lte IE 8]>
    <%= stylesheet_link_tag "application-ie", :media => "all" %>
<![endif]-->

Son olarak, bu yeni bildirim dosyaları eklemeyi unutmayın sizin config/üretim ortamları/.rb:

config.assets.precompile  = %w( application-all.css application-print.css application-ie.css )

Güncelleme:

Max belirttiği gibi, eğer bu yapı izlerseniz görüntü başvurular dikkatli olmak zorunda. Birkaç seçeneğiniz var:

  1. Görüntüleri aynı düzende hareket
    • Bu sadece görüntüleri paylaşılıyor, hepsi deÄŸilse de çalıştığını unutmayın
    • Bu iÅŸler çok karışıyor beri sigara baÅŸlangıç için en olacak bekliyorum
  2. Görüntü yolu hak:
    • background: url('/assets/image.png');
  3. Kullanım SASS Yardımcısı:
    • background: image-url('image.png');

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • CaliforniaMetin

    CaliforniaMe

    3 ÅžUBAT 2013
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011
  • Vsauce

    Vsauce

    30 Temmuz 2007