アプリケーションの完全修飾パスを取得するために、次の関数を作成しました。
public class Generic
{
public static string FullyQualifiedApplicationPath
{
get
{
//Return variable declaration
string appPath = string.Empty;
//Getting the current context of HTTP request
var context = HttpContext.Current;
//Checking the current context content
if (context != null)
{
//Formatting the fully qualified website url/name
appPath = string.Format("{0}://{1}{2}{3}",
context.Request.Url.Scheme,
context.Request.Url.Host,
context.Request.Url.Port == 80
? string.Empty
: ":" + context.Request.Url.Port,
context.Request.ApplicationPath);
}
if (appPath.EndsWith("/"))
appPath = appPath.Substring(0, appPath.Length - 1);
return appPath;
}
}
}
<head>
タグで使用すると、<%=%>
異なる出力が得られます。
<link href="<%= Generic.FullyQualifiedApplicationPath %>/Styles/StyleSheet.css" rel="stylesheet" type="text/css" />
<script src="<%= Generic.FullyQualifiedApplicationPath %>/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
html出力:
<link href="<%= Generic.FullyQualifiedApplicationPath %>/Styles/StyleSheet.css" rel="stylesheet" type="text/css" />
<script src="http://localhost:2093/SourceOne/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
asp.netエンジン<%= Generic.FullyQualifiedApplicationPath %>
がクライアントに送信する理由をさまよっているだけです。
--NJ