Octopressで作った記事をチェックするときのプレビュー方法は通常は
rake preview
としてlocalhost:4000
で確認出来る様な設定になっていますが、
いくつかそれ以外の確認方法についてもまとめておきたいと思います。
rake preview
最初の設定ではWEBrick 1 というフレームワークを使ったWebサーバーが立ち上がります。
通常ポート番号4000番を指定していますが、この番号はRakefile
内にある
server_port
(~30行目)を変更すれば好きな番号変更できます。
rake preview
ではOctopressディレクトリを監視しながら変更があった場合
随時アップデートして表示してくれます。
また、YAMLブロックでpublished: false
としてある記事についても
表示されるので、そのような下書き段階のままでも確認出来ます。
単独でWEBrickを動かす
rake preview
だと常にディレクトリ変更を監視するので、
CPUを結構食います。
もし、既に出来上がったものを見るだけで良ければ、Octopressの
トップディレクトリ(config.ru
があるディレクトリ)で
$ rackup --port 4000
とすると、単独で走らせる事が出来ます。 (portを指定しなければ9292番に立ち上がります。)
Powを使う
Macの場合、
rake preview
の他に最初からサポートされていると公式に書かれている方法として
Powを使う方法があります。
この場合はPow
は別途インストールする必要があります。
公式ページのまま従うと
$ curl get.pow.cx|sh
*** Installing Pow 0.4.1...
*** Installing local configuration files...
/Users/user/Library/Application Support/Pow/Versions/0.4.1/lib/command.js:78
throw err;
^
Error: EACCES, open '/Users/user/Library/LaunchAgents/cx.pow.powd.plist'
と怒られる場合があるので、その場合は
/Users/user/Library/LaunchAgents
がrootの所有物になっていると思うので、sudo
して下さい。
(自分の所ではvirtualvoxのインストール時にこのディレクトリがroot権限で造られていました。)
$ curl get.pow.cx| sudo sh
としてインストールして下さい。
さらに、iTerm嬢やtmux内でインストールを行おうとすると
$ curl get.pow.cx| sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 6887 100 6887 0 0 13603 0 --:--:-- --:--:-- --:--:-- 23748
*** Installing Pow 0.4.1...
*** Installing local configuration files...
/Users/user/Library/LaunchAgents/cx.pow.powd.plist
*** Installing system configuration files as root...
/etc/resolver/dev
/Library/LaunchDaemons/cx.pow.firewall.plist
*** Starting the Pow server...
*** Performing self-test...
!!! Couldn't find a running Pow server on port 20559
For troubleshooting instructions, please see the Pow wiki:
https://github.com/37signals/pow/wiki/Troubleshooting
To uninstall Pow, `curl get.pow.cx/uninstall.sh | sh`
こんな風に怒られますが、取り敢えずの回避策として
ターミナル.app
から行う様に
2
、とのことです。
Powがインストール出来たら、今度はOctopressの公式に従って
$ cd ~/.pow
$ ln -s /path/to/octporess octopress
$ cd -
これで以降、http://octopress.dev へとアクセスするだけでpublic内の様子を見ることが出来ます。
rake preview
の様にディレクトリの監視をしながらpublishされてないものも
含めて見たい場合は
$ rake watch
を実行すると同様に監視状態に入るので、 http://octopress.devで見るページもアップデート される様になります。
Thinの導入
OctopressとPreviewで検索するとthinを代わりに使ったら高速になるよ
という記事が結構ひっかかりますので、例に漏れずに試してみました。
まず、Gemfile
へ
$ gem 'thin'
を追加し、bundle install
してthinを導入します。
この段階でOctopressのトップディレクトリで
$ thin start
とするとhttp://localhost:3000で プレビューにアクセス出来ます。
また、thinがGemfileに書いてあると、通常のrake preview
もthinを使う
様になります。
thinの導入についてはこちら
でpull requestされていて次のversion 2.1ではthinを使う様になるようです。 こちらのリクエストと 共にブランチにマージされています。
正直な所、Webサーバー自体はそれ程負荷がかかるものでもないので、
あまりWEBrickとthinの違いは感じませんでした。
(それ以上にpreview
で監視に使われるリソースのが大変。)
SimpleHTTPServer
SimpleHTTPServerは簡単にWebサーバーを立てる事が出来るpythonのモジュールです。 rubyから一歩離れたいときに…
コマンドを打ったディレクトリをルートとしてサーバーを立ち上げるので、
rake generate
した後にpublic
ディレクトリへ行き
python -m SimpleHTTPServer
とします(勿論pythonが導入済みな事を前提で)。 この場合にはポート8000http://localhost:8000がデフォルトで使われます。(違う番号にしたい時はコマンドの最後に番号を与えてれば変更出来ます。)
この場合でもrake watch
と併用すれば自動アップデートが出来ます。
# まとめ
rake preview
/rake watch
は自動で変更を取り入れてアップデートしてくれるので
便利なのですが、
結構負荷がかかるのであまり長い間動かしておけるものではないと思います。
(全然問題無い様なマシンなら別として…)
また、previw
やwatch
による自動生成だと、たまに1回エラーを出してしまった時に
回復できずに結局generate
なりし直す必要があることもあります。
(変なファイルが残ってしまうこともあるのでどうしても駄目ならrake clean
も試すとエラーが消える事があります。)
その辺も含めて、普段使う方法としてはMacでは
rake generate
でpublicフォルダを生成- Powを使ってhttp://octopress.devを開いて確認
- 変更が必要なら変更する。
- もし頻繁にチェックしたい場合は
rake watch
と併用してPowで。
- もし頻繁にチェックしたい場合は
と言った感じが一番楽でマシンにも優しいかな、と。
Windowsの場合でも1つのターミナルでrackup --port 4000
/thin start
動かしておいて
Powの様にして、必要に応じてgenerate
なりrake watch
した方が普通にpreview
するよりは軽く使えるかな、と。
(ずっとpreviewしっぱなしでも良いくらいのスペックを持っていれば良いだけなんですが…)
Ref:
- 第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge|gihyo.jp … 技術評論社
Rubyのhttpサーバまとめ 2012年4月版(thin, Unicorn, Passenger, etc)
公式ページ
http://www.webrick.org/が見つからないけど、 wikiにも無いページがあるのでしょうか…?(もうrubyの一部としてのドキュメントだけ?) ↩