我希望从我的根路径test.com/some.png提供图像,但是这个降价页面可能会显示在[Post] test.com/Item或[Put] test.com/Item/123所以我我正在寻找一种方法来获得基本URI来形成图像链接。
答案 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.Request
或base.RequestContext.Get<IHttpRequest>()
来获取有关传入请求的信息以及(HttpRequest)base.Request.OriginalRequest
以获取基础ASP.NET请求对象。