Я разработал класс IHttpHandler
и настроил его как verb="*" path="*"
, поэтому я обрабатываю весь запрос вместе с ним, пытаясь создать собственную реализацию REST для тестового веб-сайта, который генерирует 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 ('~')) для очистки, хотя я чувствую, что в этом нет ничего плохого, и это поведение абсолютно нормально.
Прямо сейчас я могу справиться с этим, но я думаю, что в будущем это принесет мне головную боль. Я пытался установить все ссылки с абсолютными URL-адресами, используя информацию context.Request.Url
, но это также является болью: D, поэтому я хотел бы знать, есть ли лучший способ сделать такие вещи.
Не стесняйтесь давать мне довольно очевидные ответы, потому что я довольно новичок в веб-разработке и, возможно, я пропускаю что-то базовое в URL, Http и т. Д.
Заранее спасибо и всего наилучшего.