2013-02-06 19 views
16

Mamy aplikację szyny, którą niedawno zaktualizowałem z Rails 3.0 do Rails 3.2. Ta aplikacja obsługuje wielu klientów. Aby dostosować go do każdego klienta, mamy katalog app/themes. W tym są podmodulki. Każdy submoduł zawiera takie rzeczy, jak locales/en.yml, views/layouts, views/controller_name itp. Używamy prepend_view_path do dodawania widoków motywu, a I18n.load_path do dodawania ustawień regionalnych. Chcemy wykorzystać potok zasobów, aby zachować cały zestaw materiałów klienta z publicznego katalogu i zachować go w każdym motywie.Dodać ścieżkę do folderu potoku?

Czy mogę dynamicznie powiedzieć szynom, aby załadować folder temat/nazwa-folderu/zasobu? Używamy logiki ustawień, aby ustawić, który temat jest aktywny. Więc jeśli mam motywu zestaw do „google”, to ApplicationController następnie ładuje pliki z drogi:

app/themes/google/locales/*.yml 
app/themes/google/views 

Co chciałbym być w stanie zrobić, to mieć plik manifestu,

app/themes/google/assets/stylesheets/application.css 

łatwo dostępne dla układu, tak jak byś w app/views/layouts pliku:

= stylesheet_link_tag "application" 

Czy istnieje sposób mogę to zrobić? czy musimy ręcznie przenieść zasoby do rzeczywistego katalogu zasobów?

+0

Jest na to sposób, aby załadować zasobów na kontrolerze, ale to nie jest to, czego szukasz. Można uznać, że ten potok-potok (w produkcji) prekompiluje i optymalizuje wszystkie zasoby w jednym pliku (odpowiednio 'application.js' i' application.css') w '/ public'. Celem jest zmniejszenie liczby wywołań do serwer do pobierania zasobów. –

Odpowiedz

15

był w stanie zrobić to w environment.rb:

require "#{Rails.root}/app/models/settings.rb" 
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/stylesheets" 
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/images" 
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/javascripts" 
+0

po dodaniu linii, np. 'Config.assets.paths <<" # {Rails.root}/app/assets/fonts "', lub tych, które zostały dodane, czy istnieje polecenie, które należy uruchomić? Czcionki, których próbuję użyć, nie działają. Pomyślałem, że to było wystarczająco podobne pytanie, aby dodać komentarz tutaj, zamiast rozpocząć nowe pytanie. –

+0

Czy jest to powód, dla którego dodajesz czcionki do potoku zasobów? Nadal można je umieścić w pamięci publicznej i odwoływać się do nich w ten sposób, tak jak każdy inny plik publiczny, który byłby w wersji 3.0 wcześniejszej. – agmcleod

+0

Tak, próbuję scalić ikony Fundacji zurb z moim projektem, a istnieją cztery pliki czcionek różnych typów i arkusze stylów CSS, które, jak dotąd, założyłem, po prostu umieszczam w pliku foundation.css, który już mam z za pomocą podstawy zurb. –

Powiązane problemy