Oto ogólny sposób rozwiązywania tego problemu dla dowolnej biblioteki. Błąd
odtworzyć na lokalnym
Run szyn serwer na produkcji
- Na terminalu
rake assets:precompile
to na config/environments/production.rb
# Rails 4 production
# config.serve_static_files = true
# Rails 5, Uncomment to run production on local
# config.log_level = :debug
config.public_file_server.enabled = true
- Na terminalu
RAILS_ENV=production rails s
- Powinieneś zobaczyć błąd w przeglądarce internetowej
rodziny czcionek Zastąp
application.css
musi zostać zmieniona na application.scss
od asset-url
zostaną wykorzystane
Dodaj czcionki do precompile na plik config/initializers/assets.rb
:
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)$/
Poszukaj definicji twarzy czcionki wewnątrz swojej biblioteki CSS i skopiuj ją do application.scss
.To powinno być coś takiego:
@font-face {
font-family: 'my-library';
src: url('../fonts/my-library.eot');
src:
url('../fonts/my-library.eot?#iefix') format('embedded-opentype'),
url('../fonts/my-library.woff2') format('woff2'),
url('../fonts/my-library.ttf') format('truetype'),
url('../fonts/my-library.woff') format('woff'),
url('../fonts/my-library.svg?#my-library') format('svg');
font-weight: normal;
font-style: normal;
}
Zmiana:
@font-face {
font-family: 'my-library';
src: asset-url('my-library/fonts/my-library.eot');
src:
asset-url('my-library/fonts/my-library.eot?#iefix') format('embedded-opentype'),
asset-url('my-library/fonts/my-library.woff2') format('woff2'),
asset-url('my-library/fonts/my-library.ttf') format('truetype'),
asset-url('my-library/fonts/my-library.woff') format('woff'),
asset-url('my-library/fonts/my-library.svg?#my-library') format('svg');
font-weight: normal;
font-style: normal;
}
Jakie zmiany zostały wprowadzone
- Zastosowanie
asset-url
zamiast url
- Zmień
../fonts
lub podobny do ścieżka, która asset-url
rozumie.
Co ścieżka umieścić na aktywach URL
Aby dowiedzieć się, która ścieżka asset-url
rozumie, przejdź do szyn konsolę i wprowadź Rails.application.assets.paths
. Dostaniesz coś takiego:
[
'/path/1',
'/path/2',
'/path/3',
]
Jeśli czcionki są na /path/2/my-library/fonts/
następnie użyć asset-url('my-library/fonts/my-library.eot')
.
Oznacza to, że usuwasz ścieżkę, którą znalazłeś pod numerem Rails.application.assets.paths
.
Sprawdź napisał właściwą drogę
Na konsoli Rails na rozwój:
helper.asset_url('my-library/fonts/my-library.eot')
powinien zwrócić:
"/assets/my-library/fonts/my-library-2517b97e2c0e1e6c8ceb9dd007015f897926bc504154137281eec4c1a9f9bdc9.eot"
Uwaga tylna /assets/
i trawienia w ostatniej części.
Czy używasz Heroku? –
ubuntu 12.04, nie heroku –
Okay Mam odpowiedź, ale użyliśmy jej tylko z Heroku, więc proszę bądź miły, jeśli to nie jest w porządku –