无法更改 nopCommerce 默认起始页

Unable to change nopCommerce default start page

我正在尝试让我的 nopCommerce 3.50 网站在访问该网站时打开特定页面。

当我在本地调试项目时它工作正常,因为我在项目属性中将特定页面 'welcome.html' 设置为启动操作(在 Visual Studio 2012 中)。但是,一旦网站在服务器上发布,它就会忽略此请求。

在 IIS 中,我检查过 'welcome.html' 位于默认页面列表的顶部,但是 nopCommerce 会忽略这些设置(在各种论坛上都可以找到),即使您删除了其他所有内容,它也总是会转到default.aspx.

我试过将它添加到 system.webserver 中的 web.config,但没有任何区别:

<defaultDocument>
                <files>
                      <add value="Welcome.html"/>
                  </files>        
  </defaultDocument>

配置中没有对默认起始页的其他引用。

我对nopCommerce 和路由不太熟悉,有谁知道how/where 我可以更改默认页面吗?到目前为止,我在论坛上找到的所有内容都没有用。是的,每次更改后我都会重建项目,通常会完全替换服务器上的 bin 文件夹以确保。

我不希望站点重定向到特定的操作或视图,而是重定向到项目根文件夹中的静态 HTML 文档(我真的不希望这样,但是客户对他们想要的东西非常具体)。静态页面有两个按钮,一个将转到 nopCommerce default.aspx,另一个将转到另一个站点。

谢谢

找到满足要求的方法:

  1. 在目录中添加一个新文件夹(例如'NOP')并将 welcome.html 页面以外的所有内容都放入新文件夹中。
  2. 更改欢迎页面中的链接以指向新文件夹结构(图像、链接等)。
  3. 在 IIS 中,确保将 welcome.html 设置为默认文档,因为它现在是文件夹中唯一可以正确加载的文档。
  4. 在 IIS 中将新文件夹转换为应用程序(右键单击 > 'convert to application' on Windows Server 2012 R2)

这样就不需要对 nopCommerce 中的代码进行任何更改,就可以达到预期的效果。

您可以在 global.asax.cs

中更改路线

默认路线是

  routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                new[] { "Nop.Web.Controllers" }
            );

这条路由会告诉你在HomeController中执行,有Index动作(函数)和returnViews下定义的同名视图。查看路径将为 Views/Home/Index

为了更改您应该添加欢迎功能(只需复制索引功能并重命名为欢迎并将其粘贴到 HomeController 中)。

然后您可以按如下方式更改路由。

 routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Welcome", id = UrlParameter.Optional },
                    new[] { "Nop.Web.Controllers" }
                );

不要忘记在 Views/Home 下创建欢迎视图,如 Welcome.cshtml