我在ASP MVC5中有一个应用程序,虽然大多数工作正常,但在引用JavaScript文件时,我会遇到问题,基本上,如果URL直接到MyPage.com/admin/products/等控制器,则创建,脚本被调用并正常工作,但是,在调用控制器和其他参数(如mypage.com/admin/products/edit/1525)时,我必须将'../'添加到JavaScript文件参考或IT如果没有" ../",我不会加载javaScript中的图像或路径的任何引用。我相信我需要在路线上设置一些东西,但不确定,这是我的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")
查看JS和CSS捆绑(现在在.net中可用一段时间)。
请注意,过去的CSS捆绑了图像中的断裂相对URL(在CSS中)存在问题。如果这成为问题,请查看CSS重写变换(MVC捆绑和CSS相对URL)