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/fontsw 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.

Author: Andrew, 2011-06-28

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.

Zajęło mi trochę czasu, żeby to ogarnąć. Nadal Nie wiem, co się stanie, jeśli 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

 74
Author: Jason L Perry,
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"
 42
Author: Peter Ehrlich,
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)

 8
Author: ocodo,
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

 3
Author: montrealmike,
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.

 2
Author: ragaskar,
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);
}
 1
Author: S.M.Mousavi,
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