2011-06-08 6 views
0

私は小さなjavascriptライブラリを作成します。それはイメージを使用します。 私はこのようなディレクトリ構造を構築したい:javascript:どうすれば自分の.jsがわかりますか?

 
/lib 
    /mylib 
     main.js 
     /img 
      main.png 
    /other libraries... 
index.html 

しかし、私のハードコード画像のパス lib/mylib/img/main.pngあれば、私のライブラリは、他のディレクトリ構造に使用することはできません。

私が望むのは、「相対パス」を使用することです。これは、main.jsの自己に関連しています。画像にアクセスするにはpath + 'img/main.png'と書くことができます。

main.jsの場所はどのように知ることができますか?

+0

あなたのJavaScriptライブラリは、いくつかのページに含まれている場合ので、main.js' 'へのパスが' http://example.comのようなものになります/ lib/mylib/main.js'? – Anurag

+0

はい。 (私は15文字必要...) –

答えて

1

あなたの<script>タグからそれを抽出することができます。

function getScriptPath() { 
    var scriptTags = document.getElementsByTagName('script'); 

    return scriptTags[scriptTags.length - 1].src.split('?')[0].split('/').slice(0, -1).join('/') + '/'; 
} 
+0

これは解決策です。しかし、この実装では、私のlibはrequire.jsのようないくつかのモジュールマネージャでは動作しません... –

+0

なぜあなたの他のライブラリではうまくいかないのですか? – Blender

+0

私は通常、.js(s)をインポートするのに

関連する問題