17

W wersji Release Rails 3.1 występują pewne dziwne problemy z prekompilowaniem pliku manifestu sass z rozszerzeniem scss. Dziwne jest to, że domyślny plik manifestu application.scss kompiluje się dobrze i widzę go pod public/assets/.Prekompilowanie pliku manifestu .scss przy użyciu potoku Rails 3.1

Jednak gdy próbuję skompilować moje niestandardowe pliki manifestu, nic nie jest tworzone. Włączyłem opcję prekompilacji w konfiguracji produkcyjnej.

config.assets.precompile += %w(user.scss admin.scss) 

Używam zadanie prekompilacji natarcia poprawnie jak daleko wiem.

rake assets:precompile RAILS_ENV=production 

A może to pomaga. Kiedy tworzę dwa nowe pliki manifestu o rozszerzeniu css zamiast scss i wymagają oryginalnych plików scss w nich, to te nowe pliki manifestu są honorowane i poprawnie skompilowane. Dlaczego application.scss otrzymuje specjalne traktowanie, a nie inne pliki manifestu sass?

+0

Dobre pytanie, chciałbym znać odpowiedź. – Andrew

+0

jakikolwiek powód, dla którego nie chcesz przyjąć odpowiedzi poniżej? – tee

+0

Nie, po prostu nie testowałem twojego rozwiązania, odkąd przeniosłem się na inne rzeczy. – Anurag

Odpowiedz

27

Zawierać skompilowane pliki w swojej prekompilacji listy:

config.assets.precompile += %w(user.css admin.css) 

Również może chcesz zmienić nazwę oryginalne pliki w app/assets/stylesheets obejmuje skompilowany rozszerzenia w oryginalnych nazwach, więc to jasne, co się dzieje na:

user.scss -> user.css.scss 
admin.scss -> admin.css.scss 
+0

Dobra robota! Dzięki – abhijit

-2

Podejrzewam, że może to być błąd.

Pliki application są traktowane jako pliki główne dla projektu domyślnego. Ten, który kończy się na .css i .js, znajduje się domyślnie na liście prekompilacji.

Zachowanie, które opisujesz (manifestuje się z rozszerzeniem .css) jest prawidłowe.