http://wp.xdite.net/?p=3137
利用 RVM
做出 3.0 與 3.1 的 gemset
3.0 與 3.1 會動到 rake 版本還有一些 gem 。如果你手上有 3.0 的多個 project 又要把某些 project
升上 3.1,光 gem install rails -v=3.1.0 就會讓你的 3.0 環境炸掉。請先幫你的專案環境上 RVM 然後做出兩套
gemset。
把平日專案提醒的 DEPRECATED WARNING 全數修掉
目前 3.0 的警告,在 3.1 是幾乎全數被棄用的。沒有把這些棄用 API 修完,會造成你的專案無法開啟。常見的有
rails/init.rb ,RAILS_ROOT,RAILS_DEFAULT_LOGGER 這一些棄用 API。這些 API
有可能散落在專案裡或者是相依的 Gem 之類,有些地方還蠻難找的,務必找到它並改掉它們。
把專案的 CSS 轉成 SCSS
Rails 3.1 支援 SCSS,甚至是大力推薦使用,建議使用 compass
先搭配 Rails 3.0 進行轉和動作,同時整理 CSS。使用 sass-convert 可以將 css 轉成 SCSS。
我們在專案升級前,就曾經進行了 SCSS 轉換並整理 CSS 的動作。好處相當多。光維護專案的 style 就變得省力許多。
統一 stylesheets 內 image 路徑的寫法
每個 RD 的寫法不一樣。有好幾種寫法
* /stylesheets/images/
* images/
* ./images/
* ../images/
但這其中有一些路徑寫法,在轉成 SCSS 和上 asset pipeline 時會有問題。我的作法是在轉 SCSS 時就進行一次修整,將寫法統一為 /stylesheets/images
,把亂放在 pubic/images/ 卻應該屬於 public/stylesheets/images/ 的圖歸位整理。
上 asset pipeline 時,只要把 /stylesheets/images 取代成 /assets/images 就做完了,非常輕鬆。
拿掉 SCSS 內 image-url 這個 helper ,一律使用 url
我在 asset_pipeline,precompile 會遇到的 hash 問題
,有解釋過使用這個 helper 會造成不同機器的 hash 會不一致,有上 CDN 的話會導致 CSS 噴白。
在知道有 asset pipeline 之前,我們在 deploy 時就已經使用 Jammit 去壓縮打包我們的 asset 檔案。因為
Jammit 是用 asset.yml 去管控需要壓縮的檔案。所以我們在轉成 asset pipeline 的時候只需要做 copy /
paste 再少許修改就做完了…。( CSS 與 JS 有 放置順序問題,我們趁用 Jammit 壓檔案時就整理過了)。
而 Jammit 需要寫 preheat asset task,此時我們也把 deploy preheat asset 的最佳實踐順序測完了。所以也只是改個 task 名稱而已…
準備一台 staging 和兩台 production server
第一次測試,我們是拿一台 staging server 先 deploy rails31 branch,把 Rails 3.1 的 precompile 實踐都找出來。此時發現兩個重大問題:
1. git 必須放在 /usr/bin/git 。因為 compass 使用 git 版本當做版號,passenger 找不到 git 會直接爛掉
2. sprockets 壓縮 asset 必須要有 JavaScript runtime,因此至少要可以裝上 nodejs,而 deploy 用的帳號必須要能夠執行 nodejs
測完沒問題之後。因為我們的架構最前面是有一台 Load Balancer 的。先停掉一台正式 deploy Rails
3.1,保證正式服務還是不會受影響。然後在這台使用 Rails 3.1 的機器上測看看有沒有 asset 忘記 compile 或者是
asset 位置漏調整到引發的的 bug。修到沒問題之後再正式全面 deploy 到正式機器。
分享到:
相关推荐
这是最新的Rails 3.1 实战,包括TDD、BDD等实用技术。
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
标题 "rails3.1安装与mysql配置 windows" 涉及到的是在Windows操作系统上安装Ruby on Rails 3.1框架并配置MySQL数据库的过程。这是一个关键的开发环境设置步骤,对于使用Rails进行Web开发的程序员来说至关重要。Ruby...
### 敏捷Web开发与Rails 4th Edition (Rails 3.1)——全面解析 #### 核心知识点概述 《敏捷Web开发与Rails》第四版涵盖了最新的Rails 3.1版本,是一本旨在帮助开发者快速掌握Ruby on Rails框架的核心书籍。本书...
backbone-rails, 在 Rails 3.1中轻松使用 backbone.js 主干 rails 轻松设置并使用 Rails 3.1和更高版本的backbone.js ( 1.2.2 )##Version#####Github 主 branch###gem 版本:1.2.2Backbone 版本:1.
tiny_mce, Ruby on Rails 插件( pre Rails 3.1 ),允许你轻松地将TinyMCE编辑器实现到你的应用程序中 用于 Rails的 TinyMCE因为我没有时间维护它,而且代码库处于不一致状态,所以这个 gem 被折旧 ! 似乎如下笔记。...
在Rails 3.1版本中,引入了许多重要更新和改进,使得这个框架更加高效且功能丰富。 首先,让我们深入了解Rails 3.1在资产管道(Asset Pipeline)方面的重要变革。资产管道是一种整合和优化应用程序中CSS、...
咖啡豆Rails 3.1包含了轰动。... 在您的Rails 3.x项目中(是的,这在Rails 3.0.x和Rails 3.1中都可以使用)将以下内容添加到您的Gemfile : gem 'coffeebeans' 然后运行: $ bundle install 就是这样!
该项目允许您在 Rails 3.1 应用程序中轻松使用 iPhone 样式的复选框。 安装 将gem 'ios-checkboxes'添加到 Gemfile 并运行bundle install 与 Rails 3.1 一起使用 将//=require ios-checkboxes添加到您的app/assets/...
《Rails 3 in Action》是2011年由Ryan Bigg撰写的一本关于Ruby on Rails框架的权威指南,专门针对当时最新的Rails 3.1版本进行了深入解析。这本书旨在帮助开发者充分利用Rails 3.1的强大功能,提升Web应用开发的效率...
为 Rails 3.1+ 资产管道提供 GitHub Flavored Markdown CSS。 安装 将这些行添加到应用程序的Gemfile : # github flavored markdown css packaged for the rails asset pipeline gem 'github-css-rails' , '~> ...
脚本以用于 Rails 3.1+ 和 Rails 4 资产管道。 安装 将jquery_file_download-rails添加到应用程序的Gemfile : gem 'jquery_file_download-rails' 运行 Bundler 来锁定 gem: bundle install 在jquery和jquery...
利用并充分利用Rails 3.1资产管道的好处Jasminerice消除了您没有测试CoffeeScript文件无法控制的泛滥的借口。 该项目动摇并使用了MIT-LICENSE。 发展须知 布拉德·费兰(Brad Phelan)不再积极开发该项目,但正在...
此gem打包了Rails 3.1+资产管道的 。 Eonasdan的tarruda的的分支得到了积极维护,并与。 是必需的依赖项。 安装 将这些行添加到应用程序的Gemfile中: gem 'momentjs-rails' , '>= 2.9.0' gem 'bootstrap3-...
-rails gem 将通过资产管道将库包含到您的Rails 3.1+应用程序中。 这个 gem 与来自的最后一个标记发布版本捆绑在一起,它由 Rails Assets Pipeline 自动为您缩小。 如果您需要自定义功能检测测试,请考虑本 README ...
桌布栏杆 Doc Walker 宝石化提供为 Rails 3.1+ 资产管道打包的Tablecloth JavaScript/CSS。安装将这些行添加到应用程序的Gemfile : # tablecloth table js/css packaged for the rails asset pipelinegem '...
在添加同时使用,并充分利用Rails 3.1资产管道。 jasmine-stories消除了您没有测试失控应用程序的任何借口。 该项目,是的无耻“叉子”,并使用了MIT-LICENSE。 无头测试 有关详细信息,请参见。 默认情况下,将...
jqgrid-jquery-rails 由Doc Walker认可提供为Rails 3.1+资产管道打包的jqGrid jQuery插件。安装将这些行添加到应用程序的Gemfile : # jqgrid jquery plugin packaged for the rails asset pipelinegem 'jqgrid-...
flipclockjs-rails 这个gem打包用于Rails 3.1+资产管道的 。 FlipClock JS版本: 0.7.7 FlipClock.js需要jQuery 1.7.x+ 。安装将此行添加到您的应用程序的Gemfile中: gem 'flipclockjs-rails', '~> 0.7.7'然后执行...