无法更改nopCommerce默认开始页面

时间:2015-10-21 16:53:41

标签: nopcommerce

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

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

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

我已经尝试将其添加到system.webserver中的web.config中,这没有任何区别:

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

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

我不太熟悉nopCommerce或路由,有谁知道我可以在哪里/哪里更改默认页面?到目前为止,我在论坛上发现的一切都没有用。是的,我在每次更改后重建了项目,通常完全替换服务器上的bin文件夹以确保。

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

由于

2 个答案:

答案 0 :(得分:1)

找到一种方法来满足要求:

  1. 在目录中添加一个新文件夹(例如,&#39; NOP&#39;)并将所有内容从welcome.html页面放在新文件夹中。
  2. 更改欢迎页面中的链接以指向新文件夹结构(图像,链接等)。
  3. 在IIS中,确保将welcome.html设置为默认文档,因为它现在是正确加载的文件夹中的唯一文档。
  4. 在IIS中将新文件夹转换为应用程序(右键单击&gt;&#39;转换为应用程序&#39;在Windows Server 2012 R2上)
  5. 这样,nopCommerce中的代码不需要进行任何更改,并且可以实现所需的结果。

答案 1 :(得分:1)

您可以在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动作(函数)并返回在Views下使用相同名称定义的视图。查看路径将为Views / Home / Index

要更改它,您应该添加一个欢迎函数(只需复制索引函数并使用welcome重命名并将其粘贴到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

创建欢迎视图