desc "GZip HTML" task :gzip_html do puts "## GZipping HTML" system 'find public/ -type f -name \*.html -exec gzip -9 {} \;' # Batch rename .html.gz to .html Dir['**/*.html.gz'].each do |f| test(?f, f) and File.rename(f, f.gsub(/\.html\.gz/, '.html')) end end
desc "GZip CSS" task :gzip_css do puts "## GZipping CSS" styles_dir = "#{public_dir}/assets" system 'find public/assets -maxdepth 1 -type f -name \*.css -exec gzip -9 {} \;' # Batch rename .css.gz to .css Dir['public/assets/*.css.gz'].each do |f| test(?f, f) and File.rename(f, f.gsub(/\.css\.gz/, '.css')) end end
desc "GZip JS" task :gzip_js do puts "## GZipping JS" styles_dir = "#{public_dir}/assets" system 'find public/assets -maxdepth 1 -type f -name \*.js -exec gzip -9 {} \;' # Batch rename .js.gz to .js Dir['public/assets/*.js.gz'].each do |f| test(?f, f) and File.rename(f, f.gsub(/\.js\.gz/, '.js')) end end
desc "GZip All" task :gzip => [:gzip_html, :gzip_css, :gzip_js] do end
desc "Generate jekyll site" task :generate do raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir) puts "## Generating Site with Jekyll" system "compass compile --css-dir #{source_dir}/assets" system "jekyll" Rake::Task[:gzip_html].execute Rake::Task[:gzip_css].execute Rake::Task[:gzip_js].execute end
注意,上述腳本山姆鍋只在 Mac OS X 上測試過,不過理論上,Linux 系統應該也可以執行。基本上,這個腳本會把 HTML, CSS 以及 JS 檔案使用 gzip 壓縮,並將’js’從檔名中移除。另外,您要根據您 JS/CSS 輸出的路徑,修改’public/assets’成實際放置 JS/CSS 的路徑。
本文簡單說明如何設定兩台 MySQL server,讓它們彼此互相備份資料 (Master-master 模式)。雖然這樣的設定通常是支援高可用性 (high availability) 平台的一部分,但本文不包含如何完成其他 HA 的工作。設定兩台 MySQL 伺服器互相備份,主要目的就是要確認資料的安全性;同時也提高可用性。