Dodawanie nowej ścieżki zasobu w Rails 3.1
Czy ktoś wie jak dodać kolejny folder do potoku zasobów w Rails 3.1?
Chciałbym podaćapp/assets/fonts
w ten sam sposób app/assets/images
.
Aktualizacja: 5-7-2013
Wystarczy dodać jakieś wyjaśnienie dla przyszłych ludzi, którzy uważają to pytanie, aby wyraźnie dodać ścieżkę zasobów, w aplikacji.plik rb:
config.assets.paths << "#{Rails.root}/app/assets/fonts"
Jednakże, ponieważ powyższa ścieżka znajduje się pod app/assets
nie musisz dodawać jej wprost, wystarczy zrestartować aplikację rails, aby Sprockets mogę odebrać.
Będziesz musiał wyraźnie dodać ścieżki, które są poza app/assets
,lib/assets
, lub vendor/assets
, i tylko pamiętaj, że podczas gdy Sprockets pobiera nowe pliki w folderach, które były obecne podczas ładowania aplikacji, z mojego doświadczenia nie odbiera nowych folderów w ścieżkach zasobów bez ponownego uruchomienia.
6 answers
Andrew, app/assets/fonts
jest już w twojej ścieżce ładowania zasobów, wraz z images
. Więc możesz po prostu wskazać zasób w ten sam sposób: <%= asset_path('/Ubuntu/Ubuntu-R-webfont.eot') %>
[1] lub jak kiedykolwiek odwołujesz się do swoich obrazów.
app/assets/fonts
i app/assets/images
będzie plik o tej samej nazwie.
[1] zakładając, że masz czcionkę w app/assets/fonts/Ubuntu/Ubuntu-R-webfont.eot
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-28 20:26:04
Andrew, Jason, zgodzili się. FWIW umieściłem to w moim config/aplikacji.rb obok
# Enable the asset pipeline
config.assets.enabled = true
config.assets.paths << "#{Rails.root}/app/assets/fonts"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-22 19:59:09
Poprzez utworzenie app/assets/images
i app/assets/fonts
zostaną one automatycznie dodane do ścieżki zasobów.
Otwórz konsolę rails po ich utworzeniu i sprawdź za pomocą:
y Rails.application.config.assets.paths
(y
jest skrótem do metody yaml
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-03 09:31:15
Działa bez dodawania ścieżki, ale należy uważać, że używana jest prawidłowa nazwa pliku dla zasobu.
url("#{asset_path 'fontawesome-webfont.eot'}?#iefix") format('embedded-opentype'),
...
url("#{asset_path 'fontawesome-webfont.svg'}#FontAwesome") format('svg');
Na przykład w tym przypadku pozostaw ?#iefix
poza nazwą pliku czcionki
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-11 21:05:03
Mogę potwierdzić, że działa bez dodawania nowych ścieżek do konfiguracji w Rails 3.1.0.rc4 (i prawdopodobnie wyższe). Odbiłem serwer, możesz zrobić to samo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-12 00:32:20
Utwórz folder assets/fonts
i dodaj do niego czcionkę i Użyj motywu na swoim pliku css zgodnie z instrukcją
@font-face {
font-family: Sawasdee;
src: url(Sawasdee.ttf);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-04 17:25:32