JavaScript 外部ファイルの相対パス JavaScript では、外部ファイルの相対パスは、パスが同じディレクトリまたは別のディレクトリ。 相対ページ を使用して外部 JavaScript ファイルがページに含まれている場合。タグの場合、そのファイル内で指定されたパスはページのディレクトリに対する相対パスです。たとえば、提供されたフォルダー構造では、画像 filters_expand.jpg へのパスは、myjsfile.js ファイル内の ../Images/filters_expand.jpg である必要があります。</p> <p><strong>JavaScript ファイルに対する相対値</strong></p> <p>ただし、画像へのパスが JavaScript ファイルとは別のディレクトリに指定されている場合は、 ../../[画像へのパス]。これは、JavaScript ファイルが画像フォルダーと同じディレクトリにないためです。</p> <p><strong>解決策</strong></p> <p>推奨される解決策は、ルート パスを格納するグローバル変数を作成することです。 Web アプリケーションの。この変数は、ページのディレクトリへのパスを返す関数を使用して割り当てることができます。例:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre>var rootPath = function() { var scripts = document.getElementsByTagName("script"); var currentScript = scripts[scripts.length - 1]; return currentScript.src.substring(0, currentScript.src.lastIndexOf("/") + 1); }();</pre><div class="contentsignin">ログイン後にコピー</div></div> <p>ルート パスを取得したら、それを使用して画像や CSS ファイルなどの他のリソースへの相対パスを構築できます:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre>$("#toggle").click(function() { if (left.width() > 0) { AnimateNav(left, right, 0); $(this).css("background", "url('"+ rootPath +"Images/filters_expand.jpg')"); } else { AnimateNav(left, right, 170); $(this).css("background", "url('"+ rootPath +"Images/filters_collapse.jpg')"); } });</pre><div class="contentsignin">ログイン後にコピー</div></div>