2

ルート パス test.com/some.png から画像を提供しようとしていますが、このマークダウン ページは [Post]test.com/Item または [Put]test.com/Item/123 に表示される可能性があります。画像リンクを形成するためのベース URI を取得する方法。

4

1 に答える 1

1

~/Markdown ページ内のリテラル テキストを使用して、仮想パスに変換できます。

このリテラルは、起動時にappHost.Config.WebHostUrl プロパティEndpointHostConfig.MarkdownReplaceTokensが割り当てられたグローバル プロパティから登録されます。

this.MarkdownReplaceTokens["~/"] = appHost.Config.WebHostUrl.WithTrailingSlash();

ASP.NET フレームワークがホストされている URL を (つまり、リクエストなしで) 判断するのは難しいため、構成で使用する優先 URL を指定する必要があります。以下は、servicestack.net /docs/ - ServiceStack のマークダウン ドキュメント プロジェクトの例です。

SetConfig(new EndpointHostConfig {
    WebHostUrl = baseUrl,                          //replaces ~/ with Url
    MarkdownBaseType = typeof(CustomMarkdownPage), 
});

それ以外の場合は、サービス内で使用して、着信要求に関する情報を取得しbase.Requestたり、基になる ASP.NET Request オブジェクトを取得したりできます。base.RequestContext.Get<IHttpRequest>()(HttpRequest)base.Request.OriginalRequest

于 2012-08-08T00:02:28.710 に答える