2009-03-09 6 views
0

私はIIS 6にASP.NET MVCアプリケーションをデプロイする途中ですが、ルートパスの問題が発生しています。 Global.asaxの中ルートルート分割パス

、私はマップされたルートパスがあります:私はhttp://servername:70/test2/に移動すると

routes.MapRoute("Root", "", 
    new { controller = "Dashboard", action = "Index", id = "" }); 

を、アプリは右のページが表示されますが、スタイルシートとJavaScriptファイルがロードされていません。ソースを見ると、パスは次のように表示されています

http://servername:70/test2/test2/Content/stylesheets/app.css

私は、コントローラ(http://servername:70/test2/Dashboard.aspx)に直接行く、のために、ブラウザの外観を作る

<script src="test2/Scripts/MicrosoftAjax.js" type="text/javascript"></script> 
<link rel="stylesheet" type="text/css" 
    href="test2/Content/stylesheets/app.css" /> 

パスは正しいです:

<link rel="stylesheet" type="text/css" href="Content/stylesheets/app.css" /> 

これは、ActionLinkで生成されたリンクでも発生します。スタイルシートとスクリプトのパスはUrl.Contentで生成されています:

<link rel="stylesheet" type="text/css" 
    href="<%= Url.Content("~/Content/stylesheets/app.css") %>" /> 

答えて

0

私は最近、ロブConeryのScript Registration Helperを使用する次のようなquestionに答えています。ここで答えをコピーし、スタイルシートにHtmlHelperの例を追加します。

public static string RegisterJS(this System.Web.Mvc.HtmlHelper helper, string scriptLib) { 
    //get the directory where the scripts are 
    string scriptRoot = VirtualPathUtility.ToAbsolute("~/Scripts"); 
    string scriptFormat="<script src=\"{0}/{1}\" type=\"text/javascript\"></script>\r\n"; 
    return string.Format(scriptFormat,scriptRoot,scriptLib); 
} 

public static string RegisterCSS(this System.Web.Mvc.HtmlHelper helper, string styleLink, string rel) { 
    //get the directory where the css is 
    string stylesheetRoot = VirtualPathUtility.ToAbsolute("~/Content/Stylesheets"); 
    string styleFormat="<link type='text/css' href='{0}/{1}' rel='{1}' />\r\n"; 
    return string.Format(styleFormat, stylesheetRoot, styleLink, rel); 
} 

使用法:

<%= Html.RegisterJS("myscriptFile.js") %> 
<%= Html.RegisterCSS("app.css") %> 

この情報がお役に立てば幸いです。

はまた、私はLeviでその質問に、別の応答があったことに注意してください:

これがRC2で修正されている必要があります。 RC2を使用していてもこの問題が発生している場合は、http://forums.asp.net/1146.aspxにバグを報告してください。

これがあなたの希望する回答であれば、Leviのresponseをアップしてください。

0

または、Url.Contentを使用して...

<link href="<%=Url.Content("~/Content/Site.css") %>" rel="stylesheet" type="text/css" />

関連する問題