2013-12-13 5 views
1

Я создал новое приложение MVC 4 и пытаюсь перенести существующее приложение MVC 3. Все работает нормально, пока я не попытаюсь использовать новую функцию Bundling, и когда я свяжу Kendo css-файлы, стрелка на выпадающих меню и числовые текстовые поля исчезают. Они функционируют нормально, просто отсутствуют изображения. Файлы кажутся очень сложными. Я много исследовал и попытался переименовать файлы, чтобы удалить «мин» и по-прежнему иметь ту же проблему.MVC 4 Bundling вызывает недостающее изображение в пользовательском интерфейсе Kendo

Вот файлы я пытаюсь связать:

<link href="@Url.Content("~/Content/kendo/kendo.common.min.css")" rel="stylesheet" type="text/css" /> 
    <link href="@Url.Content("~/Content/kendo/kendo.default.min.css")" rel="stylesheet" type="text/css" /> 
    <link href="@Url.Content("~/Content/kendo/kendo.blueopal.min.css")" rel="stylesheet" type="text/css" /> 

Когда я связать их, как так появляются вопросы:

bundles.Add(new StyleBundle("~/Content/cssBundle").Include(
      "~/Content/kendo/kendo.common.min.css", 
      "~/Content/kendo/kendo.default.min.css", 
      "~/Content/kendo/kendo.blueopal.min.css" 
      )); 
+0

У вас все еще есть мини-файлы. Компиляция ASP.NET MVC игнорирует файлы с завершением с .min.css или .min.js –

+0

@Ufuk Hacıoğulları, Спасибо. Я переименовал файлы, чтобы не включать часть min, как я читал, вы могли бы сделать, но получили то же поведение. –

ответ

0

Я знаю, что это боль, но я обычно просто модифицировать .css и найдите find/replace, чтобы получить правильные пути.

В противном случае, вы можете установить пакет быть тот же каталог, что Кендо находится, как это:

bundles.Add(new StyleBundle("~/Content/kendo").Include(
      "~/Content/kendo/kendo.common.min.css", 
      "~/Content/kendo/kendo.default.min.css", 
      "~/Content/kendo/kendo.blueopal.min.css" 
      )); 
2

я столкнулся с той же проблемой. CssRewriteUrlTransform должен сделать трюк:

.Include("~/Content/kendo/2014.1.318/kendo.common.min.css", new CssRewriteUrlTransform()) 
+0

этот действительно должен быть ответом. Мы недавно попробовали, и он работает. – Ristogod

0

Во-первых, нет необходимости Минимизировать файлы, которые уже были минимизированы. Класс StyleBundle попытается снова изменить файлы Kendo .min, что не нужно. Вместо этого используйте класс Bundle.

Во-вторых, метод .Include() принимает второй параметр params IItemTransform[] transforms. Вы можете передать new CssRewriteUrlTransform() в качестве этого параметра, поэтому ваш CSS будет иметь правильные пути.

Пример:

bundles.Add(new Bundle("~/Content/cssBundle") 
    .Include("~/Content/kendo/kendo.common.min.css", new CssRewriteUrlTransform()), 
    .Include("~/Content/kendo/kendo.default.min.css", new CssRewriteUrlTransform()), 
    .Include("~/Content/kendo/kendo.blueopal.min.css", new CssRewriteUrlTransform()) 
); 
0

я был в состоянии исправить эту проблему путем настройки маршрутов в моем приложении для местоположений проблемы.

// Route for bundles problem. 
routes.MapRoute("ResourcesFix", "bundles/{folder}/{path}", 
    new { controller = "Redirect", action = "Index" }); 

// Redirect for requests. 
public class RedirectController : Controller 
{ 
    public ActionResult Index(String folder, String path) 
    { 
     return Redirect("~/Content/kendo/" + 
      WebConfigurationManager.AppSettings["KendoVersion"] + "/" + folder + "/" + path); 
    } 
} 
Смежные вопросы