Вот что я сделал - по крайней мере сейчас:
Поиск и замена:
html.image("~
для
Html.CDNImage("~
А затем создал помощника в статическом классе ImageExtensions
:
public static string CDNImage(this HtmlHelper htmlHelper, string imageRelativeUrl)
{
return CDNImage(htmlHelper, imageRelativeUrl, null, null);
}
public static string CDNImage(this HtmlHelper htmlHelper, string imageRelativeUrl, object htmlAttributes)
{
return CDNImage(htmlHelper, imageRelativeUrl, null, htmlAttributes);
}
public static string CDNImage(this HtmlHelper htmlHelper, string imageRelativeUrl, string alt, object htmlAttributes)
{
string url = Regex.Replace(imageRelativeUrl, "~/content/", "http://s3.amazon.com/", RegexOptions.Compiled | RegexOptions.IgnoreCase);
return htmlHelper.Image(url, alt, htmlAttributes);
}
Очевидно, я использую s3.amazon.com
в качестве заполнителя здесь - вы должны заполнить URL для вашего CDN, какой бы он ни был.
При необходимости вы можете использовать какое-либо свойство конфигурации, чтобы определить, действительно ли вы выполняете замену.