6

Chciałbym zmienić plik application.css na plik sass i użyć @import do wyciągnięcia wszystkich niezbędnych plików. Następnie chcę @ importować plik application.css.sass do plików sass specyficznych dla strony. To wszystko działa pięknie w rozwoju, ale gdy wciskam go ENV produkcyjnej na Heroku otrzymuję ten błąd:Czy można zmienić plik application.css na application.css.sass?

Error compiling CSS asset 
Sass::SyntaxError: File to import not found or unreadable: application 

application.css.sass:

@import "reset" 
@import "typography" 
@import "buttons" 
@import "junk" 

$yellow: #f0f090 
$orange: #f89818 
$blue1: #184898 
$blue2: #4888c8 

body 
background: ... 
... 
/* all the rest of the app-wide styling */ 

uniquePage.css.sass :

@import "application" 
/*page specific styling*/ 

Następnie na stronach, które potrzebują rzeczy różni się od application.css nazywam

!!! 5 
%html 
    %header  
    = stylesheet_link_tag "uniquePage" 

Odpowiedz

3

Then I guess the question becomes, how do I make different manifest files for different css sets?

Istnieje kilka sposobów O to zrobić:

1. Na arkuszach stronie

To, co robisz teraz, ale chciałbym zorganizować arkusze nieco inaczej, używając @imports zarówno aplikacji i unikalnej strony. (Zamiast importować aplikację na unikalną stronę).

2. Użyj drugi arkusz dla właśnie tych stron

Można mieć drugi arkusz z tylko zmian na tej stronie. Wszystkie strony mają arkusz aplikacji, a drugi tag jest dodawany na unikalnej stronie z wymaganymi zmianami. To kosztuje dodatkowe żądanie http.

3. reorganizacji CSS

Jeżeli dodatkowo CSS jest znaczny, może być lepiej refaktoryzacji zawierać kod w głównym pliku. Łatwo jest dodać dodatkową klasę do znacznika body unikatowej strony i dostosować dowolny CSS do strony, która będzie z niego korzystać.

Nadal możesz umieścić ten plik CSS w pliku dla unikalnej strony (aby pomóc w konserwacji) i @importować go do głównego pliku.

Zgodnie z ogólną zasadą, chyba że zmiany CSS są znaczne, chciałbym spróbować połączyć je w głównej CSS W przeciwnym razie przejdź do opcji 1.

5

W Rails 3.1, application.css jest przeznaczony do użycia jako plik manifestu. Nie powinieneś zmieniać jego nazwy, nie powinieneś umieszczać w niej treści poza wymaganiami lub dyrektywami.

Użyj innej nazwy pliku dla swojego celu.

Należy również pamiętać, że SCSS @import syntax to jak użycie częściowego. Jeśli chcesz @import application plik do zaimportowania powinien być nazwany _application, a nie application.

+0

wtedy myślę, pojawia się pytanie, w jaki sposób mogę zrobić różne pliki manifestu dla różnych zestawów css? –

Powiązane problemy