ASP.NETにおけるチルダの扱い

ASP.NETのマスターページでは、チルダ(~)で自動的に相対パスを作ってくれる。
しかし、マスターページのコンテンツプレースホルダにチルダを使用すると無視されてしまう。
<asp:content contentplaceholderid="HeaderContents" id="Head" runat="server">
<link href="~/CSS/Common.css" rel="stylesheet" type="text/css"></link>
</asp:content>
確かに自動的に相対パスを取得するのだから、各ページで設定というのはよくわからないはなしになってくる。チルダはマスターページのテンプレートに対しては有効である。

ただ、スクリプトファイルのリンクを張る場合に使用する「Control.ResolveClientUrl」メソッド。
これを使うとちゃんと取得してくれる。
<link href="<%= this.ResolveClientUrl("~/CSS/Common.css") %>" rel="stylesheet" type="text/css" />
なかなか奥深い。

このブログの人気の投稿

Excel で入力した文字に勝手に取り消し線が入る

コピーした行の挿入が表示されない時はフィルタされていないかチェック