Asp.net mvc 4 MVC 4绑定导致剑道UI中缺少图像
我已经创建了一个新的MVC4应用程序,并且正在尝试将现有的MVC3应用程序迁移到其他应用程序。一切正常,直到我尝试使用新的捆绑功能,当我捆绑剑道css文件时,下拉菜单上的箭头和数字文本框消失。它们功能正常,只是缺少图像。这些文件看起来很好。我进行了广泛的研究,并尝试重命名文件以删除min,但仍然存在相同的问题 以下是我正在尝试打包的文件: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
<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部分,正如我读到的,您可以这样做,但得到了相同的行为。这确实应该是答案。我们最近试过了,效果很好。这个真的应该是答案。我们最近试过了,效果不错。