Wiem, że jest już milion pytań na ten temat, ale nie mogę tego zrozumieć.Rails 3.1, wykluczyć pliki JS z potoku aktywów
Chcę dołączyć większość moich plików JS do potoku zasobów, ale mam kilka, które chcę załadować warunkowo (lub tylko na niektórych stronach). Są to duże, skomplikowane pliki i nigdy, nigdy nie będą używane przez 95% użytkowników, więc wolałbym, aby nie były one ładowane dla każdego użytkownika. Jeden zestaw plików JS jest dla kalendarza, umieszczonego w:
app/assets/javascripts/calendar
Więc mój manifest jest skonfigurowany do obejmują tylko górną katalog (i nie podkatalog kalendarz):
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_directory .
Mój config/środowisko/production.rb:
# Compress JavaScripts and CSS
config.assets.compress = true
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs.
config.assets.digest = true
# This following config is left over from previous Rails app,
# so not sure if it's now unnecessary ...
# Disable Rails's static asset server
# In production, Apache or nginx will already do this
config.serve_static_assets = false
W widoku używam nifty_layout Ryan Bates' ręcznie zawierać pliki kalendarz:
javascript "calendar/date.js", "calendar/jquery.weekcalendar.js", "calendar/custom.js"
Próbowałem wstępnego kompilowania zarówno w fazie projektowania, jak i produkcji - dokumenty nie są jasne, gdzie powinienem to zrobić, ale wygląda na to, że jest produkcja.
I kiedy uruchomić stronę, mam to:
ActionView::Template::Error (calendar/date.js isn't precompiled)
Nie chcę go prekompilowana. Chcę go załadować ręcznie. (W rzeczywistości byłoby dobrze, aby prekompilować plik inny niż główny plik application.js, który został utworzony, ale nie wiem jak to zrobić.)
Jakie jest rozwiązanie?
Dzięki!