Rails3.1 - Wie schließe ich CSS-Dateien in einige Ansichten ein, aber nicht in andere?

8

Es scheint, dass alle css.scss-Dateien in Rails 3.1 in eine Datei zusammengeführt werden. Was mache ich, wenn ich möchte, dass eine CSS-Datei nur in einigen Ansichten enthalten ist? Wie wenn ich admin.css.scss auf der Admin-Seite und main.css.scss auf der home / about / Kontaktseite sehen möchte.

    
NotDan 05.10.2011, 01:52
quelle

3 Antworten

13

In Rails 3.1 werden all Ihre Stylesheets in der application.css zusammengeführt, wenn Ihre application.css wie folgt aussieht:

%Vor%

Es liegt an dem * = require_tree.

Sie können ein bestimmtes Stylesheet mit folgenden Elementen anfordern:

%Vor%

Andernfalls schreiben Sie in Ihrem Layout:

%Vor%

und auf Ihrer Seite:

%Vor%     
damienbrz 06.10.2011, 01:14
quelle
10

Lassen Sie mich eine Lösung hinzufügen, die für mich funktioniert hat.

Wie in einer vorherigen Antwort erwähnt, möchten Sie möglicherweise das

entfernen %Vor%

Anweisung aus der Datei application.css .

Ich behielt das

%Vor%

Anweisung für freigegebene Stile in der Anwendung.

Dann habe ich in meiner Datei application.html die folgenden Anweisungen verwendet, um nur die application.css und die controller.controller_name.css einzuschließen Stylesheets in der Ansicht.

%Vor%

Wie Sie sehen, funktioniert das für JavaScript-Dateien.

    
Elyasin 31.07.2012 15:31
quelle
3

Siehe auch:
Ссылка

(siehe Abschnitte 2.2.14 "Suchen von Layouts")

Sie könnten verschiedene Layouts für verschiedene Controller haben!

z.B. Unter App / Ansichten / Layouts könnten Sie application.haml und admin.haml haben und unter App / Controller haben Sie eine admin_controller.rb

Rails wird versuchen, ein Layout mit dem gleichen Namen wie der Controller zu finden.

Sie können dieses Verhalten auch überschreiben und angeben, welches Layout verwendet werden soll, z. B .:

%Vor%

Sie würden dann eine admin.scss-Datei unter app / stylesheets für dieses neue Layout erstellen!

    
Tilo 05.10.2011 03:00
quelle

Tags und Links