So che ci sono già un milione di domande su questo, ma non riesco a ottenere questo.Rails 3.1, esclude i file JS dalla pipeline degli asset
Desidero includere la maggior parte dei miei file JS nella pipeline degli asset, ma alcuni ne voglio caricare in modo condizionale (o solo su determinate pagine). Questi sono file grandi e complicati e non saranno mai usati dal 95% degli utenti, quindi preferirei non averli caricati per ogni utente. Una serie di file JS è per un calendario, collocato in:
app/assets/javascripts/calendar
Quindi il mio manifesto è impostato per includere solo la directory principale (ed escludere la sottodirectory di calendario):
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_directory .
mio config/ambienti/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
Nella vista, sto usando nifty_layout Ryan Bates' per includere manualmente i file di calendario:
javascript "calendar/date.js", "calendar/jquery.weekcalendar.js", "calendar/custom.js"
Ho provato a precompilare sia nello sviluppo che nella produzione - i documenti non sono chiari dove dovrei farlo, ma sembra produzione.
E quando corro nella pagina, ottengo questo:
ActionView::Template::Error (calendar/date.js isn't precompiled)
non voglio che precompilati. Lo voglio caricato manualmente. (In realtà, sarebbe corretto precompilare in un file diverso dal principale application.js che è stato creato, ma non so come farlo.)
Qual è la soluzione?
Grazie!