NopCommerce 版本:3.9
我使用NopCommerce 3.9设计了一个网上商店。我添加的任何代码都在插件中。
商店使用可以在插件中找到的首页。它依赖于插件中 RouteProvider 类中名为"home"的路由。它不抱怨该路由,而是抱怨在同一文件中找到的名为"RegisterVendor"的路由。这是两条路线
routes.MapRoute("home",
"",
new { controller = "AoiVendorsHome", action = "Index" },
new[] { "Nop.Plugin.Other.AoiVendors.Controllers" });
routes.MapRoute("RegisterVendor",
"register/designer",
new { controller = "AoiExchange", action = "RegisterVendor" },
new[] { "Nop.Plugin.Other.AoiVendors.Controllers" });
该插件安装正确,并且在我的本地计算机上一切都完全按预期工作。
问题是部署到 Web 后,它找不到路由。这是一个 imgur 链接,按照它查看错误
重新启动服务器可以修复一段时间的错误,但最终会再次出现。每当我重新部署而不重新启动服务器时,它也会回来。
有人有什么想法吗?
谢谢。
nopCommerce 的 "HomePage" 路由是这样注册
的//home page
routes.MapLocalizedRoute("HomePage",
"",
new { controller = "Home", action = "Index" },
new[] { "Nop.Web.Controllers" });
检查您的加载顺序:如果您的注册没有首先命中,请删除nopCommerce"主页"路由,然后使用IRouteProvider的优先级属性添加您的或先添加您的路由。
MVC 使用首先与请求匹配的路由。
关于部署问题,请确保您的插件部署到 ~/Plugins/{yourPluginFolder} 而不是 Nop.Web 的 bin 文件夹。可以加载~/bin文件夹中的插件,但不能保证。
我能够通过在 Visual Studio 的发布弹出对话框中的"设置"选项卡上的文件发布选项下选中"在目标位置删除其他文件"复选框来解决此问题。我想旧文件没有被覆盖并导致问题。