6

Chrome DevTools Autosave no funciona con Rails Asset Pipeline. El culpable del problema está en las URL de los activos: no puedo descifrar la ruta real del archivo por su URL. Por ejemplo, /assets/application.css puede hacer referencia a la aplicación/assets/stylesheets/application.css, lib/assets/stylesheets/application.css, o vendor/assets/stylesheets/application.css.Hacer que la canalización de activos funcione con DevTools de Chrome Autoguardar

Me pregunto, ¿cómo cambio activos URL para uno de los siguientes:

  • /app/assets/stylesheets/application.css (coincide exactamente ruta del archivo real, solución perfecta)
  • /activos /application.css?source_url=app/assets/stylesheets/application.css (introduce parámetro de consulta SOURCE_URL)

Le agradecería cualquier ayuda para escribir rieles plug-in para eso.


Actualización: Llené an issue to sprockets.

Respuesta

3

Trataré de ponerme en marcha, pero tendría que hacer mucho más para verificar o proporcionar una mejor respuesta, así que marcaré esta respuesta community wiki. De esta manera, otros pueden responder a continuación y editar esta publicación.

he tenido que configurar la canalización de activos para Sinatra, y hablando en términos generales, en las últimas versiones de Piñones (que se utiliza para proporcionar la canalización de activos en Rails) Sprockets::Asset la clase tiene métodos para obtener la path and logical path.

Creo que Rails usa el helper asset_path para generar la URL pública de la clase Sprockets. Esto a su vez parece utilizar el método de instancia AssetPaths#compute_public_path. Un buen primer paso sería modificar estas partes del código para agregar un parámetro source_url basado en su análisis del source.pathname. Esto supone que la fuente es una instancia de Sprockets::Asset de una forma u otra.

0

No estoy muy seguro de cómo espera que la fuente que venir de pero ya es proporcionada por 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" /> 
Cuestiones relacionadas