2009-08-04 22 views
1

私は.Net 1.1 webappを持っています。404オブジェクトがJavascriptファイルに見つかりません

スクリプトタグに3つのJSファイルへのリンクを持つusercontrol(.ascx)があります。

私は、アプリケーションを実行し、ユーザーコントロール を持つページを読み込むと、すべて正常ですし、Firebugにjsファイルが表示されます。

しかし、新しいブラウザウィンドウで.aspx にusercontrolをロードする別のページを読み込むと、Firebugは404オブジェクトを見つけられません.3つのJSファイルについては、 が報告されます。

この原因は何ですか?

マルコム

+0

ascxからjsを参照するコードを投稿できますか? –

+0

Malcolm

+0

あなたのウェブサイトは公開されているので、チェックアウトできますか? – ZippyV

答えて

0

おそらく、フォルダ階層内の別の場所に他のページを持っています。おそらくあなたのJSを参照して、そこに〜が付いたサーバーサイドタグを付けてください。

したがって、このような何かにあなたのJSのパスを変更してみてください:

<script type="text/javascript" src='<%=ResolveUrl("~/someFolder/functions.js")%>'></script> 

あなたが問題を理解するために、マイクロソフトのバイオリン弾きのようなツールを使用してください。

+0

私はそれを行い、最初のページでは正常に動作し、ファイルをリストし、src属性が絶対パスであることがわかりますが、新しいウィンドウのページは機能せず、jsファイルはFirebugとオブジェクトなしメッセージが見つかりませんでしたか? – Malcolm

+0

また、2番目のページでは、src属性には最初のページと同じ絶対パスがあります。 – Malcolm

0

他の.aspxページが別のフォルダにありますか?フォルダ階層の異なるレベルで可能ですか? JSファイルパスを絶対パスに調整する必要があります。

0

あなたのページのベースパスを使用してみることができます。その場合、あなたのウェブサイトの各url/image/css/jsのリファレンスは、ベースパスに関連しています。サイト内のベースパスを使用すると、ファイルをフォルダ間で移動するときの大きな問題を防ぐことができます。

通常、マスタータグにベースタグを配置します。あなたが見ることができるように

<base href="<%=MyWebsite.Library.Configuration.BasePath%>" /> 

BasePathのが私の設定から要求されていますが、BasePathのをdertermineする.NETコードを使用することができます。

この構成を使用すると、ページを開発する際に多くの問題が軽減されます。問題は、Visual Studioでこれを処理する方法を完全には知らないため、不正なCssClassまたはリンクに関する警告が発生することだけです。

関連する問題