Nginx 1.6 でSPDY、ngx_pagespeedを設定
Qiitaに投稿した。 SPDYとPageSpeed導入、既存設定の見直し、Buildなど。
jQuery UI Dialogでクローズボタンのxが出なくなった
ボタンは見えるが、xが出なくなった。
解決策
stackoverflowで見つけたこのやり方を試したら、見えるようになった。原因はわからず。 javascript - jQuery UI Dialog - missing close icon - Stack Overflow
bootstrap.jsとjquery-ui.jsの読み込みで、bootstrap.jsが上に来るように修正する。
application.js
修正前
... //= require jquery.ui.datepicker //= require jquery.ui.dialog //= require twitter/bootstrap ...
修正後
... //= require twitter/bootstrap //= require jquery.ui.datepicker //= require jquery.ui.dialog ...
bootstrapとjqueryで変数が重複していたりするのだろうか。
Mongoidで日付の期間を指定して検索する方法
RailsからMongoidを使って、日付の期間を指定して検索する方法。
環境
3日以内に作成されたユーザーを検索
この3つの書き方ができる。
User.where( :created_at => { "$gte" => Time.now.ago(3.days) } User.where( :created_at.gte => Time.now.ago(3.days) ) User.gte( :created_at => Time.now.ago(3.days) )
他の条件を追加して絞り込むパターン
localeがjaで、3日以内に作成されたユーザーを検索
User.where( :locale => 'ja' ).gte( :created_at => Time.now.ago(3.days) )
公式ドキュメント
MongoDBでcollectionを削除する方法
MongoDBでコレクションを削除するにはdrop()を使います。
[root@xxx ~]# mongo MongoDB shell version: 2.4.5 connecting to: test > db.students.insert({"name":"shoken"}) ## studentsコレクションを作成 > show collections students system.indexes > db.students.drop() true > show collections system.indexes ## studentsコレクションが削除されている
Rails 4にアップグレードするとassets:precompile しても minify されない
問題
Rails 3 ではassets:precompileすると、jsファイルの連結 + minifyされて改行や空白が削除されていたのだが、Rails 4にすると連結はされるがminifyされなくなった。
解決策
Sprocketsのキャッシュをクリアする。
bundle exec rake tmp:cache:clear
public/assets/*.jsを削除するか、config/environments/production.rb でconfig.assets.js_compressorを変更する。
rm public/assets/*js
その後、assets:precompileでjsファイルが作成されていることを確認する。
$ bundle exec rake assets:precompile RAILS_ENV=production --trace ** Invoke assets:precompile (first_time) ** Invoke assets:environment (first_time) ** Execute assets:environment ** Invoke environment (first_time) ** Execute environment ** Execute assets:precompile I, [2014-05-20T10:36:09.047520 #20568] INFO -- : Writing /home/rails/public/assets/application-311212e42fdbdedd7b0af4927xxxxxxx.js
補足: js_compressorはどれを使えば良い?
Rails Asset Pipelineのconfig.assets.js_compressorを変更してみた。
http://guides.rubyonrails.org/asset_pipeline.html#javascript-compression
Googleが提供しているWebサイトのアクセス速度を解析してくれるPageSpeed Insightsで調査した。 結果はuglifierが一番良かった。
- uglifier : 一番圧縮率が高い。PageSpeedでは合格となった。
- closure : Googleが作っているが、PageSpeedではあと2%圧縮できますという結果に。
- yui : Yahooが作っている。手元のMac OSXでエラーになるので今回は未調査。Linuxではコンパイルできた。
参考
How to clear Sprockets cache? - Stack Overflow
Rails で assets:precompile しても minify されない場合の対処 - ichiroc subset