SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Rails assets pipeline
                                   @ka8725




суббота, 6 октября 12 г.
Objects

                     • Css (SaSS)
                     • Javascript (coffeescript)
                     • Images
                     • Fonts
                     • other files...

суббота, 6 октября 12 г.
Why?
                     • Compressing up to 80%




суббота, 6 октября 12 г.
Why?
                   • Caching (with digests)




суббота, 6 октября 12 г.
Assets folders

                     • app/assets/
                     • lib/assets
                     • vendor/assets


суббота, 6 октября 12 г.
Assets folder structure
                     • app/assets/ or lib/assets or
                           vendor/assets

                           • stylesheets
                           • javascripts
                           • images
                           • your own folder (for example fonts)
суббота, 6 октября 12 г.
Main files
                           file1.js


                                     included   application.js

                           file2.js




суббота, 6 октября 12 г.
application.js

                     • //= require jquery
                     • //= require jquery_ujs
                     • //= reauire_tree .


суббота, 6 октября 12 г.
Including assets to
                                  views
                     • javascript_include_tag
                     • stylesheet_include_tag
                     • image_tag
                     • asset_path

суббота, 6 октября 12 г.
Examples

                     • javascript_include_tag ‘application’
                     • stylesheet_include_tag ‘application’

                     • javascript_include_tag ‘my_file’
                    * Change config/environments/production.rb:
                      config.assets.precompile += %w(my_file.js)

суббота, 6 октября 12 г.
Gems for compressing

                     • closure
                     • uglifier (default)
                     • yui


суббота, 6 октября 12 г.
When compile?

                     • Only in production mode
                     • In development just make sure that:
                           rake assets:precompile works

                     • Always clean assets in development mode:
                           rake assets:clean



суббота, 6 октября 12 г.
Where?

                     • Production server
                     • Content Delivery Network (CDN)
                     • Just other server (your own CDN)


суббота, 6 октября 12 г.
Workflows: 1

                     • run rake assets:precompile in
                           development mode
                     • push compiled assets (/public/assets) to
                           CDN
                     • push your new code to the production
                           server



суббота, 6 октября 12 г.
Workflows: 2

                     • Push code to production server
                     • Precompile assets on the server
                     • Push assets to the CDN


суббота, 6 октября 12 г.
Production release
                                 structure
                            CDN (Content                     Production server
                           Delivery Network)




                                               Development
                                                 machine




суббота, 6 октября 12 г.
Famous CDNs


                     • Amazon S3
                     • Rackspace


суббота, 6 октября 12 г.
Tools to pushing assets
                          to CDN

                     • asset_sync (we will use it)
                     • jammit_s3
                     • others


суббота, 6 октября 12 г.
Q/A?


                     • http://github.com/ka8725
                     • http://twitter.com/@ka8725


суббота, 6 октября 12 г.

Más contenido relacionado

Similar a Rails 3 assets pipeline

Client optimization drupal
Client optimization drupalClient optimization drupal
Client optimization drupalYury Glushkov
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхSergey Xek
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceEYevseyeva
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезныSergey Xek
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезныSergey Xek
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годAnton Turetsky
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годBadoo Development
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Облачные технологии и виртуализация
Облачные технологии и виртуализацияОблачные технологии и виртуализация
Облачные технологии и виртуализацияoelifantiev
 
Как сделать сайт быстрее?
Как сделать сайт быстрее?Как сделать сайт быстрее?
Как сделать сайт быстрее?Danil Negrienko
 
Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
 Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва  Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва it-people
 
Gennadiy Dubina - Android: Reverse engineering
Gennadiy Dubina - Android: Reverse engineeringGennadiy Dubina - Android: Reverse engineering
Gennadiy Dubina - Android: Reverse engineeringDataArt
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Badoo Development
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхSergey Xek
 

Similar a Rails 3 assets pipeline (20)

Client optimization drupal
Client optimization drupalClient optimization drupal
Client optimization drupal
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Meteor
MeteorMeteor
Meteor
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Облачные технологии и виртуализация
Облачные технологии и виртуализацияОблачные технологии и виртуализация
Облачные технологии и виртуализация
 
Wider than rails
Wider than railsWider than rails
Wider than rails
 
Как сделать сайт быстрее?
Как сделать сайт быстрее?Как сделать сайт быстрее?
Как сделать сайт быстрее?
 
Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
 Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва  Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
 
Gennadiy Dubina - Android: Reverse engineering
Gennadiy Dubina - Android: Reverse engineeringGennadiy Dubina - Android: Reverse engineering
Gennadiy Dubina - Android: Reverse engineering
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Objective J
Objective JObjective J
Objective J
 

Más de Andrei Kaleshka

How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFAAndrei Kaleshka
 
Business domain isolation in db
Business domain isolation in dbBusiness domain isolation in db
Business domain isolation in dbAndrei Kaleshka
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на RailsAndrei Kaleshka
 

Más de Andrei Kaleshka (6)

How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFA
 
Business domain isolation in db
Business domain isolation in dbBusiness domain isolation in db
Business domain isolation in db
 
Rails data migrations
Rails data migrationsRails data migrations
Rails data migrations
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на Rails
 
Ruby exceptions
Ruby exceptionsRuby exceptions
Ruby exceptions
 
Rails3 way
Rails3 wayRails3 way
Rails3 way
 

Rails 3 assets pipeline

  • 1. Rails assets pipeline @ka8725 суббота, 6 октября 12 г.
  • 2. Objects • Css (SaSS) • Javascript (coffeescript) • Images • Fonts • other files... суббота, 6 октября 12 г.
  • 3. Why? • Compressing up to 80% суббота, 6 октября 12 г.
  • 4. Why? • Caching (with digests) суббота, 6 октября 12 г.
  • 5. Assets folders • app/assets/ • lib/assets • vendor/assets суббота, 6 октября 12 г.
  • 6. Assets folder structure • app/assets/ or lib/assets or vendor/assets • stylesheets • javascripts • images • your own folder (for example fonts) суббота, 6 октября 12 г.
  • 7. Main files file1.js included application.js file2.js суббота, 6 октября 12 г.
  • 8. application.js • //= require jquery • //= require jquery_ujs • //= reauire_tree . суббота, 6 октября 12 г.
  • 9. Including assets to views • javascript_include_tag • stylesheet_include_tag • image_tag • asset_path суббота, 6 октября 12 г.
  • 10. Examples • javascript_include_tag ‘application’ • stylesheet_include_tag ‘application’ • javascript_include_tag ‘my_file’ * Change config/environments/production.rb: config.assets.precompile += %w(my_file.js) суббота, 6 октября 12 г.
  • 11. Gems for compressing • closure • uglifier (default) • yui суббота, 6 октября 12 г.
  • 12. When compile? • Only in production mode • In development just make sure that: rake assets:precompile works • Always clean assets in development mode: rake assets:clean суббота, 6 октября 12 г.
  • 13. Where? • Production server • Content Delivery Network (CDN) • Just other server (your own CDN) суббота, 6 октября 12 г.
  • 14. Workflows: 1 • run rake assets:precompile in development mode • push compiled assets (/public/assets) to CDN • push your new code to the production server суббота, 6 октября 12 г.
  • 15. Workflows: 2 • Push code to production server • Precompile assets on the server • Push assets to the CDN суббота, 6 октября 12 г.
  • 16. Production release structure CDN (Content Production server Delivery Network) Development machine суббота, 6 октября 12 г.
  • 17. Famous CDNs • Amazon S3 • Rackspace суббота, 6 октября 12 г.
  • 18. Tools to pushing assets to CDN • asset_sync (we will use it) • jammit_s3 • others суббота, 6 октября 12 г.
  • 19. Q/A? • http://github.com/ka8725 • http://twitter.com/@ka8725 суббота, 6 октября 12 г.