rails サブディレクトリでの公開

自宅用に個人的にrailsアプリを書いていたのだが。。
開発しているときは、単に

%rails s

として、urlにhttp://hogehoge:3000/などとアクセスしてた訳です。。
ある程度開発完了したので、productionとして稼働させ、自宅で稼働しているnginxに組み込まなければならない訳です。。
nginx経由で動作しているものがいくつかあるので、http://hogehoge/rails-hogehogeとかして
サブディレクトリを使いたい訳です。
proxy-passしてrewriteすればいいかと安易に考えてたのが失敗。。。

location /rails-hogehoge {
  rewrite ^/rails-hogehoge/(.*) /$1 break;
  proxy-pass http://localhost:4000;

よく考えたら、レスポンス内のデータのパスが。。。。
当たり前なんだが。

ってなわけで、このあたりを調べると、サブディレクトリなんてをキーワードに引っ掛けるとヒットします。
unicornで–path設定をするのが楽チンかと思ったが、assetsディレクトリはそのままだった。。

いくつか情報をもとにやってみたが、完璧なものはないような感じ。

結局。。。
config/routesにscopeを導入して今までのroute定義をまるっと、かっこちゃいました。
開発も本番も同じURLアクセスになります。

 scope "hogehoge" do
   ... 今までの定義
 end

asseetsディレクトリ問題は残ってしまう。。。
これは、config/application.rbファイルに下記を追加してかわす事に。。。

 config.assets.perfix = '/hogehoge/assets'

自作プログラム内のパスを書き換えなきゃならんが、あまり使っていなかったので、手間は少なかった。
という訳で手抜きで対応しました。

サブディレクトリを考慮したものも今後、修正、追加されるんでしょう。。。。

 

Emacs For Mac OS X

普段は、ターミナル上でMac標準のemacsを使用していました。

$ emacs --version
GNU Emacs 22.1.1
...

さすがに22系もという感じだったので、24系を使うことにしました。
GNU Emacs For Mac OS Xからバイナリダウンロードすることにしました。
なんかかっこいいホームページですね。
mac-emacs

.emacsではなく、.emacs.d/init.el内で設定ファイルを記述するのが標準らしい。。

shellの設定ファイルでaliasを設定しておくと、標準の/usr/bin/emacsではなく、インストールした
emacsで起動できます。

alias emacs='/Applications/Emacs.app/Contents/MacOS/Emacs -nw'
$ emacs --version
GNU Emacs 24.3.1
...

ruby-modeも標準で入っているのね。

 

rvmとrailsの環境

久しぶりにrailsの環境を触ろうとしたら、忘れていたので備忘録として。
環境を一度つぶして、再インストールしてみた。

$ curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled

$ rvm list

rvm rubies

   ruby-2.0.0-p0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

ruby の 1.9.3もインストールしておく。(まだ1.9.3を使っているので。)

$ rvm install 1.9.3
$ rvm use 1.9.3
$ rvm gemset create rails32
$ rvm --default 1.9.3@rails32
$ rvm gemset list
$ rvm gemset list

gemsets for ruby-1.9.3-p392 (found in /Users/XXX/.rvm/gems/ruby-1.9.3-p392)
   (default)
   global
=> rails32

$ gem install rails

まあ、こんな感じで@rails32のrailsを使えるようにしました。

 

SyntaxHighlighter Evolved 

SyntaxHighlighter Evolvedのプラグインを入れました。記事中のコード等を奇麗に表示してくれるようです。
多くのblogで使われていますね。。

コマンドの結果なんかは、bashを[]で指定するとよさげですね。

$ rvm list

rvm rubies

=* ruby-1.9.3-p392 [ x86_64 ]
   ruby-2.0.0-p0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

$