Asp.net mvc 4 MVC 4绑定导致剑道UI中缺少图像

Asp.net mvc 4 MVC 4绑定导致剑道UI中缺少图像,asp.net-mvc-4,kendo-asp.net-mvc,Asp.net Mvc 4,Kendo Asp.net Mvc,我已经创建了一个新的MVC4应用程序,并且正在尝试将现有的MVC3应用程序迁移到其他应用程序。一切正常,直到我尝试使用新的捆绑功能,当我捆绑剑道css文件时,下拉菜单上的箭头和数字文本框消失。它们功能正常,只是缺少图像。这些文件看起来很好。我进行了广泛的研究,并尝试重命名文件以删除min,但仍然存在相同的问题 以下是我正在尝试打包的文件: <link href="@Url.Content("~/Content/kendo/kendo.common.min.css")" rel="styl

我已经创建了一个新的MVC4应用程序,并且正在尝试将现有的MVC3应用程序迁移到其他应用程序。一切正常,直到我尝试使用新的捆绑功能,当我捆绑剑道css文件时,下拉菜单上的箭头和数字文本框消失。它们功能正常,只是缺少图像。这些文件看起来很好。我进行了广泛的研究,并尝试重命名文件以删除min,但仍然存在相同的问题

以下是我正在尝试打包的文件:

 <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" />

我知道这很痛苦,但我通常只是修改.css文件并进行查找/替换以获得正确的路径

否则,您可以将bundle设置为Kendo所在的目录,如下所示:

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

我知道这很痛苦,但我通常只是修改.css文件并进行查找/替换以获得正确的路径

否则,您可以将bundle设置为Kendo所在的目录,如下所示:

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"
             ));
我也面临同样的问题。 CSSRWriteUrlTransform应该做到以下几点:

.Include("~/Content/kendo/2014.1.318/kendo.common.min.css", new CssRewriteUrlTransform())
我也面临同样的问题。 CSSRWriteUrlTransform应该做到以下几点:

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

首先,不需要缩小已经缩小的文件。StyleBundle类将再次尝试缩小Kendo.min文件,这是不必要的。改用Bundle类

其次,.Include方法接受params IItemTransform[]transforms的第二个参数。您可以将新的CSSRWriteUrlTransform作为该参数传递,这样您的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())
);

首先,不需要缩小已经缩小的文件。StyleBundle类将再次尝试缩小Kendo.min文件,这是不必要的。改用Bundle类

其次,.Include方法接受params IItemTransform[]transforms的第二个参数。您可以将新的CSSRWriteUrlTransform作为该参数传递,这样您的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())
);

我可以通过在应用程序中为问题位置配置路由来纠正此问题

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

我可以通过在应用程序中为问题位置配置路由来纠正此问题

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

添加以下类扩展

 public static class BundleConfigExt
    {
        public static Bundle CustomCssInclude(this Bundle bundle, params string[] virtualPaths)
        {
            foreach (var virtualPath in virtualPaths)
            {
                if (virtualPath.IndexOf("~/Content/kendo/") > -1) //OR
                //// if (virtualPath.IndexOf("~/Content/kendo/") > -1 || virtualPath.IndexOf("~/Content/ExternalCss/") > -1)
                {
                    bundle.Include(virtualPath, new CssRewriteUrlTransform());
                }
                else
                {
                    bundle.Include(virtualPath);
                }
            }

            return bundle;
        }
    }
Call.CustomCssInclude扩展方法而不是.Include


添加以下类扩展

 public static class BundleConfigExt
    {
        public static Bundle CustomCssInclude(this Bundle bundle, params string[] virtualPaths)
        {
            foreach (var virtualPath in virtualPaths)
            {
                if (virtualPath.IndexOf("~/Content/kendo/") > -1) //OR
                //// if (virtualPath.IndexOf("~/Content/kendo/") > -1 || virtualPath.IndexOf("~/Content/ExternalCss/") > -1)
                {
                    bundle.Include(virtualPath, new CssRewriteUrlTransform());
                }
                else
                {
                    bundle.Include(virtualPath);
                }
            }

            return bundle;
        }
    }
Call.CustomCssInclude扩展方法而不是.Include


你仍然有缩小的文件。ASP.NET MVC绑定忽略以.min.css或.min结尾的文件。js@UfukHacıoğulları,谢谢。我将文件重命名为不包含min部分,正如我读到的,您可以这样做,但得到了相同的行为。您仍然拥有缩小的文件。ASP.NET MVC绑定忽略以.min.css或.min结尾的文件。js@UfukHacıoğulları,谢谢。我重新命名了文件,使其不包含min部分,正如我读到的,您可以这样做,但得到了相同的行为。这确实应该是答案。我们最近试过了,效果很好。这个真的应该是答案。我们最近试过了,效果不错。