我正在使用Asp.Net MVC 2来构建Web应用程序。问题是关于静态内容。在制作中,静态内容位于子域http://static.jobsora.com/content/css/。而在开发过程中,它位于../Content/css/的默认位置。示例:
生产:
<link rel="stylesheet" type="text/css" href="http://static.jobsora.com/Content/css/search-min.css" />
发展:
<link rel="stylesheet" type="text/css" href="<%= Url.Content("~/Content/css/search-min.css") %>" />
我知道生产代码库的变化根本不是一种方法。所以,我正在寻找更好的方法。我认为这可以通过绝对URL来解决,但是如何?不知道!
感谢。
答案 0 :(得分:1)
考虑通过向头部添加链接元素,可编程地添加指向页面的链接。它可以通过代码隐藏来完成,您可以使用以下方式解决这个问题:
#if DEBUG
#else
#endif
或其他一些构造。
HTH。
答案 1 :(得分:1)
创建一个这样的自定义助手:
public static class HtmlHelpers
{
public static MvcHtmlString Css(this HtmlHelper helper, string fileName)
{
string folder = ConfigurationManager.AppSettings["StaticContent"];
fileName += (fileName.EndsWith(".css") == true) ? "" : ".css";
return MvcHtmlString.Create(string.Format(@"<link rel=""stylesheet"" type=""text/css"" href=""{0}/{1}"" />", folder, helper.AttributeEncode(fileName)));
}
}
然后在您的视图中,您只需要:
@Html.Css("search-min.css")
然后,您可以使用web.config转换来设置开发和生产的值。您可以在此处找到信息http://msdn.microsoft.com/en-us/library/dd465326.aspx。