Jak wczytać Framework CSS w Rails 3.1?
Próbuję załadować Framework CSS, Blueprint, do mojej aplikacji Rails 3.1.
W Rails 3.0+ miałbym coś takiego w moich widokach/layoutach / aplikacji.html.erb:
<%= stylesheet_link_tag 'blueprint/screen', 'application' %>
<%= stylesheet_link_tag 'blueprint/print', 'media' => 'print' %>
<!--[if lt IE 8]>
<%= stylesheet_link_tag 'blueprint/ie' %>
<![endif]-->
Jednak Rails 3.1 używa teraz SASS. Jaki byłby właściwy sposób ładowania tych plików CSS Blueprint?
Obecnie mam katalog blueprint w app / assets/stylesheets /
Moja aplikacja / zasoby / arkusze stylów / aplikacja.css wygląda tak:
/*
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*= require_self
*= require_tree .
*/
Czy powinienem zrobić coś z podanie.css tak, że ładuje niezbędne pliki Blueprint? Jeśli tak, to w jaki sposób?
Po drugie, jak mam podać jakiś warunek, aby sprawdzić IE8, aby załadować blueprint / ie.css?
EDIT:
Hmmm, ponowne ładowanie strony internetowej aplikacji. Rails 3.1 zawiera pliki Blueprint. Nawet jeśli pliki css znajdują się w folderze (w tym przypadku: app/assets/stylesheets/blueprint.)
Co pozostawia mi dwa pytania
- jak należy stosować jeśli IE 8 warunek za pomocą SASS?
- Jak można załadować plik css dla formatu wydruku (tj. 'print' %>) używając SASS?
7 answers
Mimo że Rails 3.1 (RC) pozwala na używanie plików SASS-nie wymusza tego.
Pliki w /public/stylesheets
nadal będą serwowane w sam raz.
Jeśli chcesz aktywować parser SASS (i wykorzystać nowy framework), Zmień nazwę my_styles.css
na my_styles.css.scss
i umieść go w folderze /app/assets/stylesheets
. Następnie dołącz tylko swój application.css
do swojego application.erb.html
po wyróżnieniu linii require_self / require_tree w nim.
Aby uzyskać więcej informacji, oto blog, który znalazłem po szybkim wyszukiwaniu w google: http://www.rubyinside.com/how-to-rails-3-1-coffeescript-howto-4695.html
Co do IE 8. W IE nie zawsze był błąd, więc spróbuj
<!--[if IE 8.000]><!-->
<link href='./design/style-ie-8.css' rel='stylesheet' type='text/css' />
<!--<![endif]-->
Its a bit of hackery to try and reset the parser to execute the rule
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-12 04:49:59
Jeśli ktoś jeszcze zastanawia się, jak w końcu to zrobiłem.
Usunąłem
*= require_tree .
My app/assets/stylesheets/application.css , teraz wygląda tak:
/*
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*= require_self
*= require 'blueprint/screen'
*= require 'colorbox/colorbox'
*= require 'uploadify'
*= require 'scaffold'
*= require 'main'
*/
Oraz w app / views / layouts / application.html.erb , mam:
<html>
<head>
<title><%= yield(:title).present? ? yield(:title) : 'Foobar' %></title>
<%= favicon_link_tag %>
<%= stylesheet_link_tag 'application' %>
<%= javascript_include_tag 'application' %>
<%= stylesheet_link_tag 'blueprint/print', 'media' => 'print' %>
<!--[if lt IE 8]>
<%= stylesheet_link_tag 'blueprint/ie' %>
<![endif]-->
...
Mam nadzieję, że to komuś pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-08 06:24:27
Ten blog ma rozwiązanie, którego myślę, że szukasz (tak jak ja).
Nie umieszczaj blueprint
w app/assets
, ponieważ zostanie wessany require_tree
. Nie zakładaj tego public
, bo nie tam idą aktywa. Umieść je w vendor/assets/stylesheets
następnie dołącz je do application.html.erb
przed własnym application.css
jako takie:
<%= stylesheet_link_tag 'blueprint/screen', :media => "screen, projection" %>
<%= stylesheet_link_tag 'blueprint/print', :media => "print" %>
<!--[if lt IE 8]><%= stylesheet_link_tag 'blueprint/ie', :media => "screen, projection" %><![endif]-->
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-04 19:13:59
W Rails 3.1 można użyć klejnotu 'blueprint-rails'.]}
Dodaj klejnot' blueprint-rails':
/Gemfile
gem 'blueprint-rails', , '~> 0.1.2'
Dodaj wspólne pliki schematów do manifestu, aby zostały wstępnie skompilowane do aplikacji.css:
/app / assets/stylesheets / application.css
/*
*= require 'blueprint'
*/
Dodaj aplikację.css, który będzie zawierał wspólne pliki schematów. Dodaj również wydruk.css i ie.css warunkowo:
/Views / layouts / application.html.erb
<%= stylesheet_link_tag 'application' %>
<%= stylesheet_link_tag 'blueprint/print', 'media' => 'print' %>
<!--[if lt IE 8]>
<%= stylesheet_link_tag 'blueprint/ie' %>
<![endif]-->
Ze względu na warunki wydruku.css i ie.css są potrzebne jako oddzielne pliki poza aplikacją.css (i nie są domyślnie zawarte w wymaganym 'blueprint'). Musimy więc dodać je do:
/Konfiguracja / środowisko / produkcja.rb
# Separate assets
config.assets.precompile += ['blueprint/print.css', 'blueprint/ie.css']
Następnie Uruchom:
bundle exec rake assets:precompile
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-24 03:09:44
Inny sposób robienia rzeczy:
Make app/assets/stylesheets / custom.css
Następnie zmień custom.css do użycia potrzebnych plików:
/*
*= require_self
*= require 'colorbox/colorbox'
*= require 'uploadify'
*= require 'scaffold'
*= require 'main'
*/
Na koniec Zmień znacznik łącza w swoim układzie (pamiętaj, aby usunąć arkusz stylów "aplikacja")
= stylesheet_link_tag "custom"
Możesz następnie dodać dowolny inny arkusz stylów ręcznie (jak specyficzny dla ie) i inne grupy arkuszy stylów (jak blueprint, aby załadować wszystkie pliki blueprint...)
Możesz również potrzebować (w Twoim produkcja.rb)
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
config.assets.precompile += %w(custom.css)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-26 13:10:22
Absolutnie zgadzam się z Twoim rozwiązaniem, nie myśl ,że "require_tree"jest dobrą praktyką w stosowaniu.css, będzie zawierał wszystko, najwyraźniej jest zbyt agresywny. Walczyłem przez jakiś czas, w końcu wybrałem dokładnie to samo rozwiązanie, użyj aplikacji do włączenia tych stylów rusztowania, a następnie użyj znaczników HTML, aby dołączyć niektóre opcjonalne i warunkowe style. Dzięki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-06 07:36:57
Efektem końcowym przetłumaczonych plików SASS jest w rzeczywistości plik css, więc nie powinno to zmieniać sposobu dołączania arkuszy stylów.
DODATKOWO, tylko dlatego, że Gem SASS jest włączony, nie oznacza, że nie możesz używać plików css w stylu waniliowym jednocześnie. Dlatego nie powinieneś mieć problemu z włączeniem plików CSS blueprint.
Jednak, jeśli chcesz przejść czysto SASS, polecam sprawdzenie Compass gem, który ma ładne wsparcie dla
Zawiera również wsparcie dla arkuszy stylów i makr specyficznych dla ie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-24 18:52:03