6

Chrome DevTools Autosave non funziona con Rails Asset Pipeline. Il colpevole del problema è negli URL delle risorse: non riesco a decifrare il percorso effettivo del file dal suo URL. Ad esempio, /assets/application.css può fare riferimento a app/assets/stylesheets/application.css, lib/assets/stylesheets/application.css, o vendor/assets/stylesheets/application.css.Asset Pipeline funziona con Chrome DevTools Autosave

Mi chiedo, come faccio a cambiare asset URL a uno dei seguenti:

  • /app/assets/stylesheets/application.css (partite percorso del file esattamente effettivo, soluzione perfetta)
  • /attività /application.css?source_url=app/assets/stylesheets/application.css (introduce parametro di query SOURCE_URL)

Gradirei qualsiasi aiuto scrivendo Rails plug-in per questo.


Aggiornamento: ho riempito an issue to sprockets.

risposta

3

Cercherò di far girare la palla, ma dovrei fare molto di più per verificare o fornire una risposta migliore, quindi contrassegnerò questa risposta wiki della comunità . In questo modo gli altri possono rispondere di seguito e modificare questo post.

Ho dovuto istituire risorsa pipelining per Sinatra, e in generale, nelle ultime versioni di ruote dentate (che viene utilizzato per fornire il pipelining risorsa in Rails) la classe Sprockets::Asset ha metodi per ottenere il path and logical path.

Credo che Rails utilizzi l'helper asset_path per generare l'url di pubblico dalla classe Sprockets. Questo a sua volta sembra utilizzare il metodo di istanza AssetPaths#compute_public_path. Un buon primo passo sarebbe quello di modificare queste parti del codice per aggiungere un parametro source_url basato sull'analisi del source.pathname. Si presume che la fonte sia un'istanza di Sprockets::Asset in una forma o nell'altra.

0

Io non sono molto sicuro di come ci si aspetta la fonte provenga da ma è già previsto dal ActionView::Helpers::AssetTagHelper

http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html

image_tag("rails.png") 
# => <img alt="Rails" src="http://assets.example.com/images/rails.png?1230601161" /> 

stylesheet_link_tag("application") 
# => <link href="http://assets.example.com/stylesheets/application.css?1232285206" media="screen" rel="stylesheet" type="text/css" /> 
Problemi correlati