Rails 3.1 и звездочки затрудняют отладку с помощью firebug?
В Rails 3.1 Sprockets используются для управления активами и их упаковки в один файл. Что, в общем, не такая уж плохая идея.
Как указано из внешнего источника, что объясняет проблему:
Проблема с этим подходом заключается в том, что это может сделать отладку более сложной, если вы должны смотреть на "сцепленный" CSS файл в производстве, чтобы понять какой код включен, а не сложнее узнать, что происходит чем если бы вы включили оригинал файлы исходного кода.
Одним из решений было бы иметь способ переключение между "конкатенированными" и "нормальные" режимы легко (возможно, это уже возможно, я не знаю), поэтому что нормальное развитие будет беспрепятственное. Но вам придется прибегать к большой объединенный файл для отладка в производстве.
В Rails 3.0.X наш конструктор может легко настроить точку CSS с помощью Firebug, который будет указывать номер файла и строки напрямую, так как все файлы CSS были отдельными и не упакованы в один.
Или мне не хватает точки?
Ответы
Ответ 1
Я думаю, что в конце (когда RC станет ближе/станет выпуском), вы сможете изменить свой config/application.rb
следующим образом config.assets.css_compressor = false
Но, atm, это на самом деле не исправляет его, поскольку вспомогательная функция stylesheet_asset_tag не совсем совместима с новым конвейером, а модификатор: all не работает, поэтому...
В вашем представлении application.html.erb
вам нужно будет связать каждый css
<%= stylesheet_link_tag "stylesheets/application" %>
<%= stylesheet_link_tag "stylesheets/foo" %>
<%= stylesheet_link_tag "stylesheets/bar" %>
Пока у вас config.assets.enabled = true
в вашем config/application.rb
, корень ресурсов будет (по умолчанию) /assets
Вы можете запустить консоль рельсов (rails c
) и p Rails.application.assets
, чтобы просмотреть свойства, которые настраиваются в среднем времени.
Я согласен не в лучшем решении, но на данный момент (используя RC против стабильного выпуска) его лучший способ я нашел.
ОБНОВЛЕНИЕ: Копаясь вокруг края api, нашла этот ActionView:: Helper sprockets_stylesheet_link_tag
(http://edgeapi.rubyonrails.org/classes/ActionView/Helpers/SprocketsHelper.html), но он по-прежнему остается неполной заменой stylesheet_link_tag, поскольку она не поддерживает :all
, и вам все равно придется иметь сегмент stylesheets/
в вызове функции. С учетом сказанного, его проницательная функция для использования движения вперед, поэтому...
<%= sprockets_stylesheet_link_tag "stylesheets/foo" %>
Ответ 2
Вы также можете использовать:
<%= stylesheet_link_tag "application", :debug => Rails.env.development? %>
<%= javascript_include_tag "application", :debug => Rails.env.development? %>
Файлы не будут объединены в разработке, но будут в других средах.
Ответ 3
Добавить? debug_assets = true для любого URL-адреса, который вы хотите отлаживать. Он разбивает активы на свои части. Без него конкатенация происходит в соответствии с настройками вашей среды.
Ответ 4
Вы также можете использовать:
<%= stylesheet_link_tag "application", :debug =>true%>
<%= javascript_include_tag "application", :debug => true %>
Он предоставит вам следующий результат в виде источника вашего браузера.
<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
Ответ 5
Я нашел интересную проблему. Если я перекомпилирую активы (для фиксации в git), протестируйте в режиме производства, а затем вернитесь к использованию среды разработки на том же компьютере, я вижу эту проблему.
Даже если я вернусь в режим разработки, содержимое публичных/активов кэшируется и обслуживается вместо нового содержимого. Итак, вот как я его исправил:
rm -rf public/assets
Ответ 6
звездочки, вероятно, будут работать только в рабочей среде, нет необходимости упаковывать все в один файл во время разработки и тестирования