Я пытался разделить свой CSS на определенные контроллеры, скомпилировав свои активы и отобразив их в своих макетах через <%= stylesheet_link_tag "application", params[:controller] %>
Я использую CDN Bootstrap (4.3.1) и у меня это есть в моем приложенииФайл .scss:
@import "bootstrap-sprockets";
@import "bootstrap";
Проблема заключается в том, что когда я делаю Rails.application.config.assets.precompile += %w( *.css )
, он должен компилировать загрузчик, поскольку это дает мне эту ошибку:
Sass :: SyntaxError в RecipeCategories# index
Неопределенная переменная: "$ alert-padding".
Так что я использую это, чтобы "решить" это:
Rails.application.config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?('.css') }, /bootstrap.css$/ ]
Я не знаю, является ли это эффективным или наилучшим способом предотвращения предварительной компиляции начальной загрузки.
Я также столкнулся с проблемой, когда стиль, определенный в таблице стилей одного контроллера:загружается в виде другого, пока страница не обновится.(Я поместил класс в элемент в нескольких представлениях контроллеров, чтобы увидеть, действительно ли он был изолирован для определенного контроллера.)
По сути, стиль в файле CSS одного контроллера может использоваться в представлениях других контроллеров, покастраница обновляется, затем стиль «удаляется» из элемента в представлении контроллера, который не имеет стиля в своем файле CSS.