背景
俺がtmlib.jsの公式エディタのrunstantをオフライン対応のデスクトップアプリにするの前編の後編を書こうと、いざ、Atom Shellに組み込んで動かそうとしたら、ハマった。
Atom Shell内のhtmlでのパスの指定
main.js
mainWindow.loadUrl('file://' + __dirname + '/alpha/index.html');
のように記述した場合、index.htmlで
<img src="/tmp/hoge.jpg">
とは、ローカルのPCの上の/tmp/hoge.jpgを参照する事になる。
自分は、てっきり、index.htmlから相対パスでいうところの、
../tmp/hoge.jpg
が参照されると思い込んでいた。
.
├── alpha
│ └── index.html
├── tmp
│ └── hoge.jpg <-- これが/tmp/hoge.jpgで参照できると思っていた。
├── index.html
├── main.js
├── package.json
上記のtmp/hoge.jpgを参照するには
../tmp/hoge.jpg
まとめ
まぁ、mainWindow#loadUrlの時点でパスの指定が、ローカルPCの絶対パス
指定なんだから気がつけるのかも。