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 で一部の図形だけ固定する