2013-10-12 4 views
0
области видимости

У меня есть мой главный CSS приложения, и я хочу, чтобы исключить мой бэкэнд таблицу стилей, так как стили все кровоточить, когда над application.css выполнен *=require_tree .Stylesheets в Rails приложении неправильно

настоящего времени у меня мои настройки папок следующим образом:

assets/ 
    stylesheets/ 
     main/ #application.css ##other css files for front end 
     backend/ #backend.css ##other css files for back end 

Мой application.css выглядит следующим образом:

/* 
*= require_self 
*= require foundation_and_overrides 
*= require_tree ./main/ 
*/ 

backend.css

/* 
*= require_self 
*= require foundation_and_overrides 
*= require_tree ./backend/ 
*/ 

в моем application.rb

config.assets.precompile += ['application.css', 'backend.css'] 

мой development.rb

config.cache_classes = false 

    # Do not eager load code on boot. 
    config.eager_load = false 

    # Show full error reports and disable caching. 
    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = false 

    # Don't care if the mailer can't send. 
    config.action_mailer.raise_delivery_errors = false 

    # Print deprecation notices to the Rails logger. 
    config.active_support.deprecation = :log 

    # Raise an error on page load if there are pending migrations 
    config.active_record.migration_error = :page_load 

    # Debug mode disables concatenation and preprocessing of assets. 
    # This option may cause significant delays in view rendering with a large 
    # number of complex assets. 
    config.assets.debug = true 

Я попытался перемещения таблицы стилей вокруг и играть с разными каталогами, но я бы либо иметь таблицу стилей не загружается вообще или получил бы «не смог найти base_and_overrides» ...

Есть ли простой способ сделать это? Я просто хочу исключить пару стилей из компиляции с помощью application.css

ответ

1

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

Во-первых, application.css уже прекомпилирована, так что вам просто нужно:

config.assets.precompile << 'backend.css' 

Необязательно включать дополнительную таблицу стилей, поэтому application.css имеет фундамент, и т.д., и backend.css имеет только дополнительный стиль:

<%= stylesheet_link_tag 'application', media: :all %> 
<% if admin? %> 
    <%= stylesheet_link_tag 'backend', media: :all %> 
<% end %> 

Вы также можете добавить каталог shared для таблиц стилей, которые для обоих, если по какой-то причине стили application.css будут конфликтовать с backend.css стилей.

+ stylesheets 
    + shared 
    + app 
    + backend 
    - application.css 
    - backend.css 

И require_tree ./shared в обоих.