Сделайте так, чтобы Asset Pipeline работал с Chrome DevTools Autosave - PullRequest
6 голосов
/ 16 марта 2012

Chrome DevTools Автосохранение не работает с Rails Asset Pipeline .Причиной проблемы являются URL-адреса активов - я не могу расшифровать фактический путь к файлу по его URL-адресу.Например, /assets/application.css может ссылаться либо на app / assets / stylesheets / application.css, lib / assets / stylesheets / application.css, либо на vendor / assets / stylesheets / application.css.

Интересно, как изменить URL ресурса на один из следующих:

  • / app / assets / stylesheets / application.css (точно соответствует пути к файлу, идеальное решение)
  • /assets/application.css?source_url=app/assets/stylesheets/application.css (вводит параметр запроса source_url)

Буду признателен за любую помощь в написании плагина Rails для этого.


Обновление: Я заполнил проблема с звездочками .

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

Я постараюсь, чтобы мяч заработал, но мне пришлось бы сделать гораздо больше, чтобы проверить или дать лучший ответ, поэтому я отмечу этот ответ вики сообщества. Таким образом, другие можете ответить ниже или отредактировать этот пост.

Мне пришлось настроить конвейеризацию ресурсов для Sinatra, и, вообще говоря, в последних версиях Sprockets (которая используется для обеспечения конвейеризации активов в Rails) класс Sprockets::Asset имеет методы для получения путь и логический путь .

Я считаю, что Rails использует хелпер asset_path для генерации общедоступного URL-адреса из класса Sprockets. Это, в свою очередь, похоже, использует метод экземпляра AssetPaths#compute_public_path. Хорошим первым шагом было бы изменить эти части кода, добавив параметр source_url на основе вашего анализа source.pathname. Предполагается, что источником является экземпляр Sprockets::Asset в той или иной форме.

0 голосов
/ 29 марта 2012

Я не совсем уверен, откуда вы берете источник, но он уже предоставлен 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" />
...