#ruby-on-rails #rails-sprockets
Вопрос:
Используя звездочки в среде разработки Rails 6, stylesheet_link_tag('mobile')
генерирует:
<link rel="stylesheet" media="screen" href="/assets/mobile.debug-2c11e2473c793c2475ab3559e38e0b0331956e570b884642ecbe1f21fa2467f1.css" />
Но stylesheet_path('mobile')
порождает:
"/assets/mobile-ea85a9ecd4c09607a4f2d7dbfeb5e145cdb4ce2033726041472418be82c104ae.css"
На сервере разработки оба этих пути к ресурсам отображают одно и то же содержимое.
Но мне нужно кэшировать правильный путь к активу в работнике службы. Как я могу создать путь к активу, соответствующий пути, созданному помощником stylesheet_link_tag?
(Я мог бы избежать помощника stylesheet_link_tag, но, по-видимому, мне здесь чего-то не хватает)
Ответ №1:
Разница заключается в том, что звездочки разделяют ресурсы на отдельные файлы для включения, когда config.assets.debug
это верно, что по умолчанию используется в среде разработки.
К сожалению, возможность отключить этот флаг для отдельного stylesheet_link_tag
пользователя, установив флаг отладки в значение false, нарушена — см. Этот запрос на извлечение: https://github.com/rails/sprockets-rails/pull/424
Обходной путь состоит в том, чтобы установить config.assets.debug
значение false для среды разработки и использовать stylesheet_link_tag( 'mobile', debug: true )
его, если нам нужно отладить определенный ресурс.