【发布时间】:2010-05-27 18:48:55
【问题描述】:
我开发了一个IHttpHandler 类并将其配置为verb="*" path="*",因此我正在使用它处理所有请求,以尝试为生成html 动态。
所以,当一个 .css 文件的请求到达时,我必须执行类似context.Response.WriteFile(Server.MapPath(url)) 之类的操作……对于图片等等,我必须自己响应所有内容。
我的主要问题是当我将相对 URL 放入锚点时;例如,我的主页上有一个类似 <a href="page1">Go to Page 1</a> 的链接,在第 1 页我有另一个链接 <a href="page2">Go to Page 2</a>。第 1 页和第 2 页应该处于同一级别(http://host/page1 和 http://host/page2,但是当我单击转到第 2 页时,我在处理程序中得到了这个 url:~/page1/~/page2 ... 什么是痛苦,因为我必须做一个 url = url.SubString(url.LastIndexOf('~')) 来清理它,虽然我觉得没有什么问题而且这种行为是完全正常的。
现在,我可以应付它,但我认为将来这会让我有些头疼。我尝试使用context.Request.Url 的信息设置所有带有绝对 URL 的链接,但这也很痛苦 :D,所以我想知道是否有更好的方法来做这些事情。
请不要犹豫,给我非常明显的答复,因为我是 Web 开发的新手,可能我正在跳过一些关于 URL、Http 等的基本知识。
在此先感谢您的问候。
【问题讨论】:
-
url变量和context.Request.Url一样吗?
-
用于包含 context.Request.AbsoluteApplicationPath 的 url 变量(我不记得该属性的确切名称)
标签: asp.net relative-path ihttphandler