ASP.NETにおけるチルダの扱い
ASP.NETのマスターページでは、チルダ(~)で自動的に相対パスを作ってくれる。
しかし、マスターページのコンテンツプレースホルダにチルダを使用すると無視されてしまう。
ただ、スクリプトファイルのリンクを張る場合に使用する「Control.ResolveClientUrl」メソッド。
これを使うとちゃんと取得してくれる。
しかし、マスターページのコンテンツプレースホルダにチルダを使用すると無視されてしまう。
<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" />なかなか奥深い。