尝试使用ServiceStack.net提供Markdown内容页面时获取404

时间:2015-04-23 21:23:51

标签: servicestack servicestack-bsd

我有一个非常奇怪的问题。在我们的应用程序中,我有内容页面,位于应用程序根目录的“帮助”文件夹中。在帮助文件夹中,我有一堆扩展名为.md的Markdown文件。这些是通过路线提供的,例如:

http://localhost/myapp/help/calendar

结果是当用户导航到该路径时,将通过SS拾取calendar.md文件并将其发送到浏览器。

我遇到的问题是路径返回SS 404错误。

如果我将calendar.md更改为calendar.cshtml,则可以正常工作。我的内容由SS接收并按预期发送到浏览器。

为什么它会为我提供.cshtml文件的内容,但.md文件给我一个404?

我正在运行SS 3.9.70。

任何人都知道原因是什么?环境?

来自AppHost的

片段

AllowFileExtensions = { "swf", "webm", "mp4" },
MarkdownBaseType = typeof(BaseHelpPage),  
MarkdownGlobalHelpers = new Dictionary<string, Type> { { "Url",typeof(UrlHelper) } },
CustomHttpHandlers =  {
    { HttpStatusCode.Unauthorized, new RazorHandler("/AccessDenied") },
    { HttpStatusCode.Forbidden, new RazorHandler("/AccessDenied") },
    { HttpStatusCode.NotFound, new RazorHandler("/NotFound") }
},

1 个答案:

答案 0 :(得分:1)

您需要将.md.markdown文件类型添加到ServiceStack的文件扩展名白名单中。在Configure AppHost方法中,您可以指定文件扩展名以允许使用AllowFileExtensions

SetConfig(new EndpointHostConfig {
    AllowFileExtensions = { "md", "markdown" }
});