タグを宣言する際の絶対パスはありますか?
これは、フォルダー(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">
相対パスごとに異なるバージョンを作成する必要が本当にありますか?
代わりに、ドメインルートからの相対パスを使用することをお勧めします。
<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">
ASP.NET MVCの場合は rl.Content( "〜/ Scripts/jquery-1.4.1.js") を使用しますあなたの見解。チルダは、アプリケーションルートを基準にしてパスを作成します。これは、IIS仮想アプリケーションとして実行している場合は、サブフォルダーになる可能性があります。
WebFormsの場合は、 Page.ResolveUrl() または VirtualPathUtility.ToAbsolute() を試してください。ページ。
(余談ですが、 CDNからjQueryをロードする )も検討することをお勧めします。
Webフォームアプリケーションでスクリプトとcssファイルを参照する場合は、
"<%=ResolveUrl("~/path/file.ext") %>"
これはMVCの"@Url.Content("~/path/file.ext")"
に似ており、サーバー上のルートアプリケーションであるか仮想ディレクトリにあるかに関係なく、〜(アプリケーションルート)をアプリケーションベースパスに置き換えます。絶対パス(/path.file.ext)を使用すると、アプリケーションがWebサイトのルートにある場合は機能する可能性がありますが、仮想ディレクトリに移動すると、リソースの解決が停止する場合があります。
jqueryが必要な場合は、常にgoogle cdnへの1つの絶対パスを使用できます
http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js
良いトピック:読み込まれる相対パスと絶対パスの異なる形式は何ですか:
(偶然:私と@Daniel Vassalloこの投稿の参加者)
テーマを使用している場合、"<%=ResolveUrl("~/path/file.ext") %>"
などのコード挿入はオプションではないようです。それらを使用すると、例外が発生します。
<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">
これはWeb形式ではまったく機能しません。 「/」はウェブサイトのルートディレクトリを表していません。
私は<base>
タグを使用し、そのベースタグに従って参照を与えることを好みます