Sto iniziando un nuovo progetto in Rails e sembra che il file manifest di application.js stia facendo qualcosa di divertente con i javascript di cui faccio riferimento - memorizza questi file come parte di la pipeline di asset?Cancella la cache dalla pipeline di risorse Rails
Ecco cosa è successo. Ho aggiunto un file JavaScript denominato jquery.autoresize.js nella cartella vendor/Attività/javascript, e poi fatto riferimento il file nelle application.js manifesto come questo:
//= require jquery.autoresize.js
poi ho iniziato il server rotaie. Ma dopo aver navigato nella mia app, mi sono reso conto di aver accidentalmente aggiunto la versione errata del file jquery.autoresize.js. Così, ho cancellato quel file e poi ho aggiunto la versione corretta alla cartella vendor/assets/javascripts. Ma, con mio orrore, quando ho ricaricato la pagina, sta ancora caricando il vecchio file javascript.
Ho provato a svuotare la cache del browser, quindi a uscire e a riavviare il server Rails, ma inutilmente. Ho violato una soluzione insieme semplicemente rinominando il mio file javascript e facendo riferimento al nuovo nome, che funzionava bene. Ma deve esserci una soluzione migliore per questo.
La nuova pipeline di asset memorizza in cache i file che si riferiscono in qualche modo? In tal caso, come posso cancellare quella cache? Grazie per qualsiasi aiuto!
Ah, molto interessante, grazie per i tuoi pensieri. In realtà stavo facendo questo sul mio ambiente di sviluppo locale, e non ho mai eseguito asset di rake: precompilare. Quindi, forse questo lo fa comportarsi in modo diverso? Pensi che l'ambiente di sviluppo potrebbe comportarsi come ho descritto in origine? –
Nell'ambiente di sviluppo, i nomi file con hash non vengono utilizzati, quindi tutto è basato sulle date di modifica dei file. (Fare view-source in un browser per vedere i link di script nell'intestazione HTML.) La mia ipotesi è che nell'ambiente di sviluppo, il file di sostituzione avesse una data di modifica più vecchia, e quindi il browser stava semplicemente usando la sua versione cache. La tua modifica ha aggiornato il tempo di modifica del file, ed è per questo che il browser ha finalmente recuperato la nuova versione. – benzado
Fantastico. Grazie per avermi aiutato a capirlo. Modificherò il contenuto della domanda e altre cose per spiegarti meglio e ti darò credito per l'aiuto. –