2011-11-15 6 views
6

Mam problem z potokiem aktywów, już mam zasób/kontroler nazywany zasobami. Zmieniłem opcję assets.prefix na "/ externals".Rails 3.1.1 - Asset Pipeline - asset.prefix nie działa z zasobem: aktywa

config.assets.prefix = '/externals' 

Ten prosty dawki nie działają, chyba usunę:

resources: assets 

wtedy wszystko działa zgodnie z oczekiwaniami.

Nie jestem pewien, jak napisać test, aby to udowodnić, ale stworzyłem aplikację do jej prezentacji.

https://github.com/nodrog/asset-pipeline-issue

Po uruchomieniu aplikacji i odwiedzić „/ produkty” wszystko będzie działać, a następnie przejść do pliku tras i zmienić zmienną create_bug true.

Zajrzeliśmy do https://github.com/rails/rails/blob/master/actionpack/lib/sprockets/helpers/rails_helper.rb, a następnie dodaliśmy debugger do metody asset_path.

Ta metoda nie jest wywoływana, jeśli masz tylko debugger w metodzie javascript_include_tag. I uruchom metodę (: asset_path) .source_location, mówi, że wywołuje metodę z domyślnych tras, a nie od pomocnika sprockets.

Każda pomoc będzie bardzo mile widziane ...

+0

otwarty bilet w szyny latarni w tej sprawie. i przesłałem film, który rozwiązuje problem, ale prawdopodobnie nie w najlepszy sposób. https://github.com/rails/rails/issues/3643#issuecomment-2775938 – nodrog

+0

Masz rację nodrog, to jest skomplikowany problem. Wpadłem na to, ponieważ pomocnicy w ogóle nie używali opcji config.assets.prefix (niezależnie od tego, czy istniały zasoby: zasoby w routes.rb), a kiedy to naprawiono, uznałem, że wszystko było w porządku. Niestety, narzędzia Sprockets nie używają ustawienia config, gdy zasoby są określone w config.rb. Czemu? Teraz popatrzę na twoją pracę. Próbowałem obejść go z ograniczeniami, a także kierować mój niestandardowy przedrostek do Sprockets, ale bez powodzenia. – Docunext

Odpowiedz