我有一个非常奇怪的问题。在我们的应用程序中,我有内容页面,位于应用程序根目录的“帮助”文件夹中。在帮助文件夹中,我有一堆扩展名为.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") }
},
答案 0 :(得分:1)
您需要将.md
和.markdown
文件类型添加到ServiceStack的文件扩展名白名单中。在Configure
AppHost
方法中,您可以指定文件扩展名以允许使用AllowFileExtensions
:
SetConfig(new EndpointHostConfig {
AllowFileExtensions = { "md", "markdown" }
});