Sto riscontrando alcuni problemi con le risorse nella produzione : mancanti, materiale compilato nei file errati (javascript per "/ admin" viene compilato nel codice di frontend e così via). La maggior parte delle risorse proviene dai motori. Voglio eseguire il debug e ottimizzare questo.Rendere la pipeline di asset come la produzione in fase di sviluppo
Per questo, ho bisogno di precompilare, servire e non riescono a mio ambiente di sviluppo proprio come è fatto su produzione.
ho aggiunto alcune linee alla mia config/development.rb
:
config.serve_static_assets = true
config.assets.precompile += %w(store/all.js store/all.css admin/all.js admin/all.css) # @TODO: clean up, and optimize.
config.assets.compile = false
L'esecuzione di questo con rake RAILS_GROUPS=assets RAILS_ENV=development assets:precompile
mi dà tutte le attività e il manifest.yml
in public/
.
Ma poi il server non riesce:
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Spree/home#index
Showing /xxxx/app/views/spree/shared/_head.html.erb where line #13 raised:
favicon.ico isn't precompiled
favicon.ico non è precompilato. Ma è! È lì, nella directory pubblica, in manifest.yml
, e posso scaricarlo con il browser (o wget): http://localhost:3000/assets/favicon.ico.
NOTA Favicon è semplicemente la prima risorsa chiamata. Se spoglio la favicon, il problema affiora semplicemente con la risorsa successiva, che è "all.js", o, quando è spogliato, "all.css", e così via. Posso spogliarlo fino a "footer_bg.png", e poi fallirà lì. Ancora: il problema non è la favicon, ma il fatto che l'ambiente di sviluppo non veda affatto le risorse precompilate.
Che altro è necessario per ottenere sviluppo risorsa gasdotto simile a produzione?
MODIFICA: spiegazione più esplicita che la favicon non è il problema, ma solo un sintomo.
Qual è lo stack dell'ambiente di produzione? Server singolo/Multi-Server, Apache/Nginx, Heroku? Stai schierando usando capistrano e usando la ricetta capistrano? Stai usando config.serve_static_assets = true in produzione? Hai provato a gestire serve_static_assets tramite apache/nginx invece che all'interno di Rails come raccomandato da Rails? – John
Il mio stack di produzione è praticamente un Passeggero con scatola nera. È un sito vhost. Non sto schierando con capistrano, ma con un hook git-push && post-commit (noto anche come git-deploy). 'config.serve_static_assets = true' è disabilitato. Ho provato a servire le risorse attraverso Apache, sì. Risolve poco. Come il problema che cerco di risolvere qui, il mio ** ambiente di sviluppo ** non serve i miei asset come in produzione. – berkes