Ja som v procese aktualizácie z aplikácie Rails 2.3.14 na Rails 3.2.1 Doteraz je jedinou otázkou neschopnosť určiť cesty k našim starým zdrojom aktív.
v config / application.rb:
config.assets.enabled = false
Nasledujúce práce (s nesprávnou cestou):
resources :company_assets, :controller => "assets", :as => :assets
Ale samozrejme, cesta je "/ Company_assets / *".
Akonáhle sa pokúsim urobiť cestu, tak to je "/aktíva/*", trasy sa nepodarí vygenerovať. podľa "nepodarí sa vygenerovať", Mám na mysli beh:
rake routes | grep assets
Nič mi neukazuje.
Tu je príklad ciest, ktoré nedokážu správne vygenerovať:
resources :company_assets, :controller => "assets", :as => :assets, :path => "assets"
# or
resources :assets
Keď sa hádam v konzole Rails, zdá sa, že existujú cesty týkajúce sa aktív, ale zdá sa, že sú ekvivalentné s tým, že zadali:
resource :assets
Namiesto:
resources :assets
(Všimnite si singulárne vs. množné číslo)
Je možné zachovať spätnú kompatibilitu bez toho, aby ste sa starali o existujúce cesty?
odpovede:
3 pre odpoveď č. 1Áno, je to možné.
Dôvod, prečo sa to deje, je preto, že ozubené kolesá (ktoré obsluhujú potrubie aktív) preberajú trasu / aktíva.
Trasu, ktorú používa Sprockets, môžete zmeniť pridaním do vašej application.rb
:
config.assets.prefix = "/x"
Kde x je nová trasa.
Robím to v jednej z mojich produkčných aplikácií, pretože kancelárske sponky ukladali svoje súbory do / aktív.
Jeden tip na aktualizáciu: skontrolujte nastavenia pipeline vo vašej aktualizovanej aplikácii oproti tým, ktoré sú v poslednú časť sprievodcu potrubím aktív.