Sé que ya hay un millón de preguntas al respecto, pero no puedo obtener esto.Rails 3.1, excluir archivos JS de la canalización de activos
Quiero incluir la mayoría de mis archivos JS en la canalización de activos, pero tengo algunos que quiero cargar condicionalmente (o solo en ciertas páginas). Estos son archivos grandes y complicados que el 95% de los usuarios jamás utilizarán, por lo que preferiría que no se carguen para cada usuario. Un conjunto de archivos JS es para un calendario, colocado en:
app/assets/javascripts/calendar
Así que mi manifiesto está configurado para incluir sólo el directorio superior (y sin incluir el subdirectorio calendario):
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_directory .
Mi config/ambientes/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
En la vista, estoy usando nifty_layout Ryan Bates para incluir manualmente los archivos de calendario:
javascript "calendar/date.js", "calendar/jquery.weekcalendar.js", "calendar/custom.js"
He intentado precompilar tanto en desarrollo como en producción: los documentos no tienen claro dónde se supone que debo hacer esto, pero parece producción.
Y cuando corro a la página, me sale esto:
ActionView::Template::Error (calendar/date.js isn't precompiled)
no quiero que precompilado. Quiero que se cargue manualmente. (En realidad, sería correcto precompilar en un archivo que no sea la aplicación principal.js que se crea, pero no sé cómo hacerlo).
¿Cuál es la solución?
Gracias!