2013-05-06 15 views
5

Próbuję dodać czcionkę do mojego app Rails to jest to, co robiłem:Heroku Szyny atutem rurociąg nie precompile po dodaniu czcionki

czcionek dodana do:

-app 
--assets 
---fonts 

SCSS:

@font-face { 
    font-family: LigatureSymbols; 

    src: font-url('LigatureSymbols211.eot'); 
    src: local('LigatureSymbols'), 
     font-url('LigatureSymbols211.eot?#iefix') format('embedded-opentype'), 
     font-url('LigatureSymbols211.woff') format('woff'), 
     font-url('LigatureSymbols211.ttf') format('truetype'), 
     font-url('LigatureSymbols211.svg#LigatureSymbols') format('svg'); 

    font-weight: normal; 
    font-style: normal; 
} 

production.rb:

config.assets.paths << Rails.root.join('app', 'assets', 'fonts') 
config.assets.precompile += %w(.svg .eot .woff .ttf) 

Ale gdy wciskam na moim serwerze produkcyjnym Heroku uzyskać to:

-----> Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     I, [2013-05-06T06:21:07.804043 #2036] INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-c5b7db18fa0fcd910e92fee751776047.eot 
     I, [2013-05-06T06:21:07.809822 #2036] INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-09ff8be41a6bee98c834e9a278bb8b28.otf 
     I, [2013-05-06T06:21:07.812685 #2036] INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-1f682b1be252dbf6182d606a185b603f.svg 
     I, [2013-05-06T06:21:07.819262 #2036] INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-9e88765b872185b22e519da056cba9f0.ttf 
     I, [2013-05-06T06:21:07.829518 #2036] INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-a2d90ca6deff46bfcf9cade63d4902ce.woff 
     I, [2013-05-06T06:21:07.838351 #2036] INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/rails-5f9b3f343d9831cbf50b9bc980faf39b.png 
     I, [2013-05-06T06:21:17.072501 #2036] INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/application-6af5b81b9fcc820f1d43b4135f00317e.js 
     rake aborted! 
     undefined method `[]' for nil:NilClass 
     (in /tmp/build_2snusxy9gm4d7/app/assets/stylesheets/application.css) 

Próbowałem dodać required linię w moim application.css ale to nie działa.

EDIT:

mogę uzyskać dostęp localhost:5000/assets/LigatureSymbols-2.11.eot na moim komputerze dev podczas uruchamiania serwera. Nie wiem, czy to może pomóc zmniejszyć, co się dzieje źle

EDIT 2:

Kod działa z czcionką SCSS zakomentowanym, tam jest błąd składni?

EDIT 3:

To jest na szczycie stosu Ślad:

.../sprockets-2.9.2/lib/sprockets/sass_functions.rb:63:in `sprockets_context' 
.../sprockets-2.9.2/lib/sprockets/sass_functions.rb:42:in `font_url' 

jest coś nie tak z moim font-url połączeń?

EDIT 4:

Usunięto kreski z nazwami czcionek i zmienił SCSS do refleksji, ale ten sam błąd nie ustępuje

EDIT 5:

Generated CSS na lokalnej maszynie:

@font-face { 
    font-family: LigatureSymbols; 
    src: font-url("LigatureSymbols211.eot"); 
    src: local("LigatureSymbols"), font-url("LigatureSymbols211.eot?#iefix") format("embedded-opentype"), font-url("LigatureSymbols211.woff") format("woff"), font-url("LigatureSymbols211.ttf") format("truetype"), font-url("LigatureSymbols211.svg#LigatureSymbols") format("svg"); 
    font-weight: normal; 
    font-style: normal; } 

Odpowiedz

4

Znalazłem to! Najdziwniejsze ... może być błąd w SASS.

Po umieszczeniu kodu bezpośrednio w pliku home.css.scss, który był wymagany w moim application.css, wystąpił błąd.

Dodatkowo, jeśli umieściłabym czcionkę SCSS w oddzielnym pliku (font.scss) i @import "font", spowoduje to również zgłoszenie błędu.

Tylko, jeśli wymagałem pliku font.scss w moim application.css, przesyłka aktywów przechodzi.

To nie miało znaczenia, czy użyłem font-url(...) vs asset-url(...,font) vs url(asset-path(...,font)) wszystkie działają, gdy czcionki dostarczone przez =require w application.css

+0

Dodałem niezbyt dobrze dobrze odebrane odpowiedzi do pokrewnego problemu tutaj : http://stackoverflow.com/a/36539357/1965639 Zmieniając font.scss na font.css i włączając to inaczej, rozwiązałem problem. @ Michael Johnston wskazał mi właściwy kierunek. – jjk

0

Dodaj to do swojego config/application.rb

config.assets.initialize_on_precompile = false 

Miałem podobne problemy z Heroku i to pomogło czasami. Warto spróbować. Daj mi znać, jeśli to pomogło.

+0

To było już w moim 'config/application.rb' dziękuję za sugestię. –

2

Usuń łączniki. W potokie zasobów stosuje się łączniki do pobierania odcisków palców zasobów, a pojawianie się łączników w ścieżkach czcionek powoduje problemy.

+0

Zmieniono nazwy plików na' LigatureSymbols211' kropka co i nadal otrzymuję ten sam błąd. Dzięki za sugestię! –

+0

Czy możesz uzyskać dostęp do czcionek pod oczekiwanym adresem URL? np. something.com/fonts/LigatureSymbols211.eot lub something.com/LigatureSymbols211.eot – John

+0

Na moim lokalnym komputerze/serwerze deweloperskim tak, mam dostęp do '/ assets/LigatureSymbols211.eot' i innych rozszerzeń. Próbowałem na serwerze produkcyjnym z odciskami palców, zanim wstępna kompilacja zostanie przerwana, ale to nie działa –

2

dostałem dokładnie ten sam błąd, gdy zapomniałem zmienić rozszerzenie pliku z .css do .scss. To naprawiło to dla mnie.

Powiązane problemy