web-dev-qa-db-ja.com

JavaScriptスクリプトタグの絶対パス

タグを宣言する際の絶対パスはありますか?

これは、フォルダー(1レベル)スクリプトにaspxページがある場合に解決されますsrc="../Scripts/jquery-1.4.1.js" type="text/javascript">

これは、フォルダー(2レベル)スクリプトにaspxページがある場合に解決されますsrc="../../Scripts/jquery-1.4.1.js" type="text/javascript">

これは、メインルートスクリプトにaspxページがある場合に解決されますsrc="Scripts/jquery-1.4.1.js" type="text/javascript">

相対パスごとに異なるバージョンを作成する必要が本当にありますか?

15
user384080

代わりに、ドメインルートからの相対パスを使用することをお勧めします。

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">
25
Daniel Vassallo

ASP.NET MVCの場合は rl.Content( "〜/ Scripts/jquery-1.4.1.js") を使用しますあなたの見解。チルダは、アプリケーションルートを基準にしてパスを作成します。これは、IIS仮想アプリケーションとして実行している場合は、サブフォルダーになる可能性があります。

WebFormsの場合は、 Page.ResolveUrl() または VirtualPathUtility.ToAbsolute() を試してください。ページ。

(余談ですが、 CDNからjQueryをロードする )も検討することをお勧めします。

11
Chris Fulstow

Webフォームアプリケーションでスクリプトとcssファイルを参照する場合は、

"<%=ResolveUrl("~/path/file.ext") %>"

これはMVCの"@Url.Content("~/path/file.ext")"に似ており、サーバー上のルートアプリケーションであるか仮想ディレクトリにあるかに関係なく、〜(アプリケーションルート)をアプリケーションベースパスに置き換えます。絶対パス(/path.file.ext)を使用すると、アプリケーションがWebサイトのルートにある場合は機能する可能性がありますが、仮想ディレクトリに移動すると、リソースの解決が停止する場合があります。

5
Goran Obradovic

jqueryが必要な場合は、常にgoogle cdnへの1つの絶対パスを使用できます

http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js

良いトピック:読み込まれる相対パスと絶対パスの異なる形式は何ですか:

絶対URLと相対URL

(偶然:私と@Daniel Vassalloこの投稿の参加者)

4
Haim Evgi

テーマを使用している場合、"<%=ResolveUrl("~/path/file.ext") %>"などのコード挿入はオプションではないようです。それらを使用すると、例外が発生します。

3
David Hazel
<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">

これはWeb形式ではまったく機能しません。 「/」はウェブサイトのルートディレクトリを表していません。

1
John Li

私は<base>タグを使用し、そのベースタグに従って参照を与えることを好みます

次のようなもの: http://www.w3schools.com/tags/tag_base.asp

1
KoolKabin