我在ASP MVC5中有一个应用程序虽然大多数工作正常我在引用javascript文件时遇到问题,基本上如果URL直接到控制器,如mypage.com/admin/products/create,脚本会被调用并工作但是,当用mypage.com/admin/products/edit/1525等附加参数调用控制器时,我必须添加' ../'对于javascript文件引用或者它不会加载以及对javascript中的图像或路径的任何引用,而不包含' ../'我得到了一堆404。 我相信我需要在我的路线中设置一些东西,但不确定,这是我的routeconfig
public static void RegisterRoutes(RouteCollection routes)
{
var namespaces = new[] {typeof (HomeController).Namespace} ;
var AdminNamespaces = new[] {typeof (Areas.Admin.Controllers.HomeController).Namespace};
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Home", "", new {controller = "Home", action = "Index"}, namespaces);
routes.MapRoute("Login", "login", new { controller = "Login", action = "Index" });
routes.MapRoute("Logout", "logout", new {controller = "Login", action = "Logout"});
}
这是区域注册
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"admin/{controller}/{action}/{id}",
new { action = "Index", controller = "Home", id = UrlParameter.Optional }
);
}
不确定我还能包含哪些内容
我遇到问题的一个特定脚本是nicedit文本编辑器,我在我的包上有这样的:
bundles.Add(new ScriptBundle("~/scripts/nicedit")
//.Include("~/scripts/lodash.js")
.Include("~/scripts/nicedit.js")
);
最后我在我的视图(不是布局)cshtml上调用它,就像这样:
@Scripts.Render("~/Scripts/nicedit")
答案 0 :(得分:-1)
了解JS和CSS捆绑(现在可以在.NET中使用)。
请注意,过去存在CSS捆绑破坏图像相对URL(在CSS中)的问题。如果这成为一个问题,请查看CSS重写转换(MVC Bundling and CSS relative URLs)