マスターページとコンテンツページ(aspxファイル)のディレクトリ階層が異なる場合、マスターページにJavaScriptファイルの指定を行うと、生成された画面のソースを見ると、マスターページからの相対パスになっており、JavaScriptのメソッドを実行できません。
どうすれば、コンテンツページからのパスで生成されるようにできますか?
■階層
root
┗Script
___Script.js
┗マスターページ
___マスターページ.master
┗コンテンツルート
_┗aspxファイル
______コンテンツ.aspx
■マスターページ
<head id="Head1" runat="server">
<script type="text/javascript" src="~/Script/Script.js" charset="Shift_JIS"></script>
</head>
■生成されたhtml
<head id="Head1" runat="server">
<script type="text/javascript" src="../Script/Script.js" charset="Shift_JIS"></script>
</head>
希望しているコード
<script type="text/javascript" src="../../Script/Script.js" charset="Shift_JIS"></script>
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ASP.NET 2.0で同じようなページ構造にして試してみましたが、相対パスどころか"~/Script..."がそのままブラウザに送られてきました…。
scriptタグはパス変換の対象になっていない様子。
(このあたりは設定等で変更できるかもしれませんが調べてません。)
解決策としては、マスターページのInitイベントでヘッダにscriptタグを追加する方法があります。
VBの場合:
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
Dim tagScript As New HtmlControls.HtmlGenericControl("script")
tagScript.Attributes.Add("type", "text/javascript")
tagScript.Attributes.Add("src", Me.ResolveClientUrl("~/Script/Script.js"))
tagScript.Attributes.Add("charset", "Shift_JIS")
Me.Page.Header.Controls.Add(tagScript)
End Sub
C#の場合:
私はC#書けないので上記コードからC#用に書き換えてください。
ありがとうございました。
教えていただいた方法を参考に
<script type="text/javascript" src='<%= Me.ResolveClientUrl("~/Script/Script.js") %>' charset="Shift_JIS"></script>
で
マスターページからのパスではなくコンテンツページからのパスで表示することができました。
C# なので Me ではなく、this にしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のjavascriptを使うと動か...
-
シャドウボックスとjQueryを共...
-
マスターページでのJavaScriopt...
-
JavaScript内にJavaScriptを読...
-
WebサービスからのxmlがIEで表...
-
マウスオーバー+クリカブルマッ...
-
<script>タグというのはどこか...
-
<a href="#" …>の意味を教えて...
-
別ファイルのfunctionの読み込み方
-
別フレームの中にあるインライ...
-
getElementsByNameで要素が取得...
-
javascriptでalertの文字列をコ...
-
ウインドウを縮小しても文字を...
-
テキストボックス内にハイパー...
-
JavascriptとJqueryを混在し記述
-
bodyにidをつける理由は何ですか?
-
JavaScriptのエラー ( 関数の...
-
SCRIPT5007: 未定義または NULL...
-
プルダウンと入力を両方行う検...
-
javascriptのalertで文字化けが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
base64encodeでの文字化けについて
-
jQueryBlockUIをフレーム内で動...
-
jquery ui.resizable 使い方
-
Jqueryの干渉について
-
Base64に変換したHTMLの<script...
-
スライド写真で2、3枚目をラ...
-
マスターページでのJavaScriopt...
-
jQueryのダウンロードファイル...
-
jqueryでのkeydownイベント発生...
-
javaスクリプトについて質問で...
-
jQueryでカウントダウンタイマ...
-
jqueryを2つ設置した事で片方...
-
jsファイルで配列を定義し、j...
-
画像スライドショー用のjQuery...
-
複数のjavascriptを使うと動か...
-
jQuery が動作しません。
-
FLASH画像を表示した後のHTML
-
サイトにアクセスした際、数秒...
-
画像をゆっくりと切り替える方法
-
シャドウボックスとjQueryを共...
おすすめ情報