ASP.Netマスターページとファイルパスの問題
質問
マスターページにjQueryのスクリプト参照を追加して、どのページでも動作するようにしようとしています。それは現在次のようになります。
<script type="text/javascript" src="jquery.js"></script>
問題は、パスが常に実行中のaspxページからの相対パスであるため、同じフォルダに "jquery.js" ファイルがある場合にのみ動作することです。これを動作させるには、行を次のように変更する必要があります。
<script type="text/javascript" src="../../jquery.js"></script>
これは明らかに理想的ではありません。なぜなら、これはルートフォルダから2階層深いページに対してのみ機能するからです。以下を試すと、IIS は予期しない文字についてのエラーを投げます。
<script runat="server" type="text/javascript" src="~/jquery.js"></script>
何かアイデアはありますか?
EDITです。 スクリプトは必ずheadタグ内に記述しなければならないことを書き忘れました。
現在のトップアンサーは、"を投げます。 ASP.NET Ajax クライアント側フレームワークのロードに失敗しました。 マスターページに追加すると、エラーが発生します。これは、.Netコンパイラではなく、javascriptからスローされます。ScriptManager をあるべき head セクションに移動すると、ScriptManager がフォーム タグの内部にある必要があるというコンパイル エラーが発生します。
3番目の回答は、"を投げます。 パスに不正な文字があります。 コンパイラから例外が発生します。
EDIT 2: この行をheadタグに追加すると、IISからこのエラーが表示されます。
コントロールにはコードブロック (<% ... %>) が含まれているため、Controls コレクションを変更することはできません。
SOLVEDです。 以下の回答から編集された回答を取り出して、それを asp:ContentPlaceHolderの中に置きました。 要素の中に入れました。
どのように解決するのですか?
あなたは
ScriptManager
:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/jquery.js" />
</Scripts>
</asp:ScriptManager>
EDITです。
もし、あなたが
絶対に
に必要であれば
<head>
セクションで、次のようなことをすることができます。
<head>
<script type="text/javascript"
src="<%= Page.ResolveClientUrl("~/jquery.js") %>"></script>
</head>
EDIT 2: コメントによると、もしあなたが
コントロールにコードブロック(つまり <% ... %>)が含まれているため、Controls コレクションを変更することができない。
を使用するには、データバインディング構文を使用するように上記を変更する必要があるかもしれません。
<head>
<script type="text/javascript"
src="<%# Page.ResolveClientUrl("~/jquery.js") %>"></script>
</head>
関連
-
[解決済み] Could not find a part of the path ... binroslyncsc.exe
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] クライアントから危険な可能性のあるRequest.Formの値が検出された
-
[解決済み] CSSは常にJavascriptより優先されるべきか?
-
[解決済み] スクリプトタグ - 非同期と遅延
-
[解決済み】GitHubでホストされている外部JavaScriptファイルをリンクして実行する。
-
[解決済み】パーミッション不足で設定ファイルが読めない
-
[解決済み】開発環境と本番環境で異なるWeb.configを使用する。
-
[解決済み】ASP.NET web.config: configSourceとファイル属性の比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ASP.NET Core 6で依存関係を解決する3つの方法
-
ASP.NET CoreでCAPの取引詳細を自動で有効にする
-
swagger uiをasp.net coreに統合する原理
-
ASP.NET Core MVC Dependency Injection ビューとコントローラ
-
ConfigurationManagerのGetSection()メソッドです。
-
[解決済み] ファイルまたはアセンブリ 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' を読み込めません でした。
-
[解決済み] "コントロールにコードブロックが含まれているため、Controlsコレクションは変更できません"
-
[解決済み】ASP.NET IdentityのIUserSecurityStampStore<TUser>インターフェースとは何ですか?
-
[解決済み] データ入力後に文字列をトリミングする最適な方法。モデルバインダーをカスタムで作成した方が良いですか?
-
[解決済み] ASP.NET_SessionId + OWIN Cookieがブラウザに送信されない。