【发布时间】:2010-05-11 21:47:23
【问题描述】:
我想创建一个返回当前网站路径的函数。这是我在 IDE 中运行时认为的工作:
Public Shared Function WebsiteAbsoluteBaseUrl() As String
Dim RequestObject As System.Web.HttpRequest = HttpContext.Current.Request
Return "http://" & RequestObject.Url.Host & ":" & _
RequestObject.Url.Port & "/" & _
RequestObject.Url.Segments(1)
End Function
这似乎应该有效?有没有更直接的方法?
我正在尝试用绝对网站路径替换 html 电子邮件中所有出现的标记“{WebSiteBaseUrl}”。
<A HREF="{WebSiteBaseUrl}Files/filename.pdf/>Some Text</A>
我不想解析模板并尝试理解它以便在文件名的相对路径上使用 MapPath 函数。
生成的电子邮件将成为 html 电子邮件的 html 正文,因此我需要链接是绝对的。
<a href="http://websitename:80/SubmitOrder.aspxFiles/filename.pdf" target="_blank">Some Text</a>
我猜我在 IDE 中运行的 dev 中看到的是“RequestObject.Url.Segments(1)”返回虚拟文件夹的名称,而在生产中它似乎返回了 Web 的名称页。我想这可能与网站在 IIS 中的设置方式有关。
这对网站在生产环境中的设置方式有何建议?您建议我如何修改代码以在将 {WebSiteBaseUrl} 替换为函数结果后生成正确的路径?这假定文件“filename.pdf”在相对路径 ~/files/filesname.pdf 中。
【问题讨论】:
-
你得到的结果是什么......并期待什么?