2014/23/9
挿入される画像のurlを絶対パスから相対パスに変更する
先日Localがバージョン6になって、今まで有料版でのみ使用可能だった機能が全て無料で使えるようになったという事で久々に使ってみた。正直言ってそんなにありがたい機能は無かったけど、なんせ動作が高速で操作がシンプルなのでそれだけでも使う理由になると思う。
VirtualBoxがM1Macに対応しないというのもあって乗り換え先を探していたけど、
もうこれでいいんじゃないかと思った。
ただ、複数マシンでサイトを共有するような機能が搭載されてなくて、そこだけ少し工夫する必要があったのでメモしておく。
ちなみにMacとWindows間でも共有可能。以下は2台のMac間でDropboxで同期させる手順。Localの使い方は他サイトに無数にあるので調べてほしい。
こちらのフォーラムの投稿を参考にさせていただいた。
1.通常通りにサイトを作成する
今回はtestという名前でサイトを作った。他の設定は初期状態のままで。
2.Dropboxにフォルダを移動
サイトを作成すると、デフォルトだと/Users/ユーザー名/Local Sitesにtestというフォルダが作られるので、
このフォルダをDropboxに移動させる。今回はDropboxにlocalというフォルダを作りその中にフォルダを移動させた。
3.シンボリックリンクを作成
Dropboxにコピーしたtestフォルダのシンボリックリンクを作成する。
シンボリックリンクは、Macの場合SymbolikLinkerで作るのが簡単だ。
test symlinkという名前でシンボリックリンクが出来上がる。
4.シンボリックリンクを元のフォルダに移動
これを元の/Users/ユーザー名/Local Sitesに移動し、もともとあったtestフォルダは削除する。
test symlinkをtestにリネームする。
これでLocalによって作られたtestフォルダを、Dropboxのtestフォルダに置き換えた形になる。
5.2台目のMacでも同じ名前でサイトを作成
2台目のMacで手順1と同じようにサイトを作成する。フォルダ名とサイト名が同じになるように。
あとは1台目でDropboxに移動させたtestフォルダから同じようにシンボリックリンクを作成し、同じようにLocalのデフォルトフォルダにシンボリックリンクを移動させ、testにリネームする。
これで2台のMacでdropboxで同期されたtestフォルダを参照するようになる。
6.データベースを同期
ここまででテーマやプラグインなどは同期されるようになったが、データベースは同期されていない。
データベースも同じようにシンボリックリンクを使って同期させる。
データベースはLocalのDATABASEからSocketの部分を見れば保存場所が分かる。

この場合だと
/Users/ユーザー名/Library/Application Support/Local/run/98PN4jS86/mysql
が目的のフォルダになる。このmysqlフォルダを任意のDropboxフォルダにコピーし、シンボリックリンクを作りオリジナルと置き換えればいい。runの後のランダムな数値は端末によって毎回異なるので、2台目のMacでも同じようにSocketの部分を確認し、Dropboxで同期しておいたmysqlフォルダをシンボリックリンクと置き換える。
これで、Localで作った1つのサイトを複数のMacで開発できるようになる。もちろんDropbox以外のクラウドストレージを使っても同じようにできると思う。
Windows版にはSocketの項目がない
windows版のLocalには、DATABASEの部分にSocketというのは存在しない。
しかしデータベースは同じような場所に保存されている。
C:\Users\user_name\AppData\Roaming\Local\run
に同じようにランダムな文字列のフォルダが並んでいるのが分かると思う。
しかしこのままだとどれがどのサイトのものか分からない。
調べ方は、LocalのPreferences > ADVANCED > Show Develop Menu をONにする。

次にLocal Sitesの調べたいサイトを選び、どこでもいいので右クリックするとInspect Elementというのが選べるようになっているのでクリックする。するとChromeのデベロッパーツールみたいなのが立ち上がるので、Elementsの上の方にあるdiv data-locationの部分にデータベースが格納されているランダムな文字列が確認できる。

この場合だと
C:\Users\user_name\AppData\Roaming\Local\run\d9LnnVD45
の中にmysqlフォルダがあるので、これをシンボリックを使い同期させればMacとWinでも同期が可能になる。
質問やご指摘など気軽にどうぞ