【问题标题】:Getting a 404 when trying to serve Markdown Content Pages with ServiceStack.net尝试使用 ServiceStack.net 提供 Markdown 内容页面时出现 404
【发布时间】:2015-04-23 21:23:50
【问题描述】:

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

http://localhost/myapp/help/calendar

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

我遇到的问题是路径返回 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") }
},

【问题讨论】:

    标签: servicestack servicestack-bsd


    【解决方案1】:

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

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

    【讨论】:

    • 这不是让我“下载” .md .markdown 文件吗?我正在尝试使用此处描述的 Markdown Razor:github.com/ServiceStack/ServiceStack/wiki/Markdown-Razor
    • @legion 抱歉,您使用 trying serve up static markdown 意味着直接下载降价文件。如果您尝试使用 razor 提供 dynamic markdown,您是否启用了 razor 插件? Plugins.Add(new RazorFormat());
    • 是的,我已启用该功能,因为我可以提供 dynamic razor cshtml 视图。
    猜你喜欢
    • 2020-12-13
    • 2019-01-24
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2020-10-05
    • 2014-07-06
    • 1970-01-01
    • 2021-05-10
    相关资源
    最近更新 更多