Görünüşe göre, raylar 3.1'de, css.scss dosyalarının tümü 1 dosyaya birleştirildi. Sadece bazı görünümlerde yer alacak bir css dosyası istiyorsam ne yapmalıyım? Admin.css.scss 'in yönetici sayfası ve home.css.scss dosyasında home/about/contact sayfasında olmasını istiyorum.Rails3.1 - Bazı görünümlerde css dosyalarını nasıl ekleyebilirim?
cevap
, tüm stil application.css içine birleştirilecek.
Sen ile belirli bir stil gerektirebilir:
%head
= yield :head
ve sayfanıza:
*= require main
Aksi takdirde, düzeni, yazdığınız
= content_for :head do
= stylesheet_link_tag 'stylesheet'
Ayrıca bakınız:
http://guides.rubyonrails.org/layouts_and_rendering.html
(bölümler 2.2.14 'Bulma Düzenleri' bakınız)
farklı denetleyicileri için farklı düzenler olabilir!
örn. app/views/layouts altında application.haml ve admin.haml ve uygulama/denetleyiciler altında bir admin_controller.rb sahip olabileceğinizi düşünebilirsiniz.
Raylar, denetleyici ile aynı ada sahip bir düzen bulmaya çalışır.
Ayrıca bu davranışı geçersiz kılmak ve bu yeni düzen için/stil, ör .: kullanmak
class ItemsController < ApplicationController
layout "admin"
#...
end
Daha sonra uygulamanın altındaki bir admin.scss dosyası oluşturmak hangi düzen belirtebilirsiniz! Bu * = require_tree nedeniyle olduğunu
/*
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*= require_self
*= require_tree .
*/
: sevdiği application.css görünüyorsa Raylar 3.1'de
beni ekleyeyim Benim için çalışan bir çözüm. Bir önceki cevapta belirtildiği üzere
Eğer application.css dosyadan
*= require_tree .
ifadeyi kaldırmak isteyebilirsiniz.
ben uygulama genelinde paylaşılan stilleri için*= require_self
açıklamada tuttu.
Sonra Application.html dosyada sadece application.css ve görünümde controller.controller_name.css stil sayfaları dahil etmek şu ifadeleri kullandı.= stylesheet_link_tag "application", controller.controller_name
= javascript_include_tag "application", controller.controller_name
JavaScript dosyaları için aynı eserlerini görebileceğiniz gibi.Aynı eski bağlantıyı boşaltmak yerine, hangi bölüme bakacağınızı belirlemek için
% kafa ve verim: kafa bitleri ne yapar? –
Haml: % head = verim: kafa HTML'de
etiketini oluşturacak ve kodu başka bir sayfadan verim ile üretecek – damienbrz