我在哪里可以获得基本URI在我的ServiceStack降价页面?

时间:2012-08-07 23:03:50

标签: servicestack

我希望从我的根路径test.com/some.png提供图像,但是这个降价页面可能会显示在[Post] test.com/Item或[Put] test.com/Item/123所以我我正在寻找一种方法来获得基本URI来形成图像链接。

1 个答案:

答案 0 :(得分:1)

您可以使用Markdown页面内的文字文本~/转换为虚拟路径。

此文字在启动时从全局EndpointHostConfig.MarkdownReplaceTokens属性注册,该属性已分配appHost.Config.WebHostUrl property

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.Requestbase.RequestContext.Get<IHttpRequest>()来获取有关传入请求的信息以及(HttpRequest)base.Request.OriginalRequest以获取基础ASP.NET请求对象。