1

我正在试用 ServiceStack,并从 Github 克隆了 RazorRockstars 示例。

如果我在 Visual Studio 2012 中打开并启动RazorRockstars.WebHost项目,它在 VS 开发服务器中运行良好。

如果我随后将项目更改为使用 IIS Express 8,则死/活菜单中的 URL 将不再正常工作。

事实证明,菜单中的链接指向没有斜杠的目录名称:http://localhost:2000/stars/alive/vedder,并且在执行时,服务器将返回 a302并重定向到http://localhost:2000/stars/alive/vedder/(注意尾部斜杠),之后一切正常。

然而,在 IIS Express 中,不会发生这种重定向,并且浏览器中的 url 仍然没有斜杠,这反过来又会破坏页面。

然而,有趣的部分是default.cshtml页面将从目录执行,但包含的部分content.md不会。看起来 SS 似乎知道这是一个文件夹,并且会正确查找default.cshtml,但后来不知何故无法查找content.md部分。

这是 SS 实现的错误还是预期的行为?301在这种情况下,ServiceStack 本身返回 a 可能是有意义的。

4

1 回答 1

1

我只是有同样的问题。

我必须下载 IIS 的 URL 重写模块。并在 RazorRockstars.WebHost 项目的 web.config 文件中创建重写规则。

有关更详细的说明,请参阅此链接。http://www.tugberkugurlu.com/archive/remove-trailing-slash-from-the-urls-of-your-asp-net-web-site-with-iis-7-url-rewrite-module

于 2014-02-06T20:09:33.447 回答