无法更改 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,另一个将转到另一个站点。
谢谢
找到满足要求的方法:
- 在目录中添加一个新文件夹(例如'NOP')并将 welcome.html 页面以外的所有内容都放入新文件夹中。
- 更改欢迎页面中的链接以指向新文件夹结构(图像、链接等)。
- 在 IIS 中,确保将 welcome.html 设置为默认文档,因为它现在是文件夹中唯一可以正确加载的文档。
- 在 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
我正在尝试让我的 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,另一个将转到另一个站点。
谢谢
找到满足要求的方法:
- 在目录中添加一个新文件夹(例如'NOP')并将 welcome.html 页面以外的所有内容都放入新文件夹中。
- 更改欢迎页面中的链接以指向新文件夹结构(图像、链接等)。
- 在 IIS 中,确保将 welcome.html 设置为默认文档,因为它现在是文件夹中唯一可以正确加载的文档。
- 在 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