2009-03-09 21 views
0

Bir ASP.NET MVC uygulamasını IIS 6'ya dağıtma aşamasındayım ancak kök yolunda bir sorunla karşılaşıyorum.Kök yönlendirme yolları

Global.asax, ben eşlenmiş kök yolunu vardır: Ben http://servername:70/test2/ gittiğinizde

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

, uygulama doğru sayfasını görüntüler, ancak stil ve JavaScript dosyaları yüklenmiyordur. kaynağında baktığımızda, yollar böyle gösteriyor:

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

Ben bir denetleyici (http://servername:70/test2/Dashboard.aspx) doğrudan gitmek için tarayıcı görünmesini sağlar

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

yollar doğrudur:

Bu, ActionLink ile oluşturulan tüm bağlantılarda da meydana gelir. stil ve komut yolları Url.Content ile üretiliyor:

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

cevap

0

Geçenlerde Rob Conery en Script Registration Helper kullanan buna benzer bir question yanıtladım. Cevabı sizin için buraya kopyalayacağım ve stil sayfaları için örnek bir HtmlHelper ekleyeceğim.

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); 
} 

Kullanımı: Bu yardımcı olur

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

Umut.

Ayrıca, ben Levi tarafından bu soruya başka bir cevabı olduğunu not:

Bu RC2 sabit olması gerekirdi. RC2 kullanıyorsanız ve hala bu sorunu görüyorsanız, lütfen http://forums.asp.net/1146.aspx numaralı telefondan bir hata gönderin. Bu tercih ettiğiniz cevap ise, lütfen Levi'nin response numaralı telefon numarasını kullanın.

0

Veya Url.Content kullanın ...

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