Я создал простой сервер на TTCPServer, который у меня нормально отдает HTML документ (сам этот документ физически на диске не существует, т.е. я посылаю его клиенту так:
ClientSocket.SendLn('<html>... </html>'),
), но есть такая проблема: как подгружать в этот документ картинки и т.п., т.е. где надо указать путь ассоциированный с localhost, откуда эти картинки бы подгружались?
Ведь код в передаваемой странице гласит:
<img src="a.gif" />
так откуда клиенту брать етот a.gif?
Мне советовали прописать SetCurrentDir(..)
Я прописал SetCurrentDir('F:\') (картинка к примеру лежит здесь: F:\a.gif)
Но это не помогло.
Что делать?
Re: Как подгружать картинки в страницу, кот. генерит TСPServ
Здравствуйте, arche, Вы писали: A>Что делать?
Научить сервер отдавать картинки. Твоя проблема в непонимании принципов работы HTML+HTTP. То, что ты видишь в браузере — это результат нескольких запросов, а не одного. Одним запросом отдать картинки весьма затруднительно. Можно, конечно, поэкспериментировать с Content-Type:multipart/mixed, но, имхо, это плохо.
Итак, у тебя есть TTCPServer. Как ты к нему обращаешься? http://localhost:portnum/?
У тебя есть три выхода:
1. Отдавать ссылки на картинки в третьем месте. <img src="http://www.rsdn.ru/Images/rsdntop.gif"> доступна независимо от действий твоего сервера
2. Поставить рядом свой полноценный HTTP-сервер. Например, MS IIS. Настроить его на другой порт. Тогда у тебя адреса картинок будут выглядеть примерно так <img src="http://localhost:80/a.gif">
3. Научить свой сервер отдавать картинки, а не только твой HTML. Когда браузер встречает <img src="a.gif"> при чтении документа, достанного из "http://localhost:portnum/", то он отправит запрос по адресу "http://localhost:portnum/a.gif" и попытается показать его результат как картинку.
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Как подгружать картинки в страницу, кот. генерит TСPS
Мне кажется, что второй пункт таит в себе некоторые мысли по решению моего вопроса, но прописывать порт в адресе картинки не желательно...
А можно ли как-нить встроить в apache мой сервер, только чтобы без всяких там корявых путей типа:
a> Мне кажется, что второй пункт таит в себе некоторые мысли по решению a> моего вопроса, но прописывать порт в адресе картинки не желательно... a> А можно ли как-нить встроить в apache мой сервер
Твой проект в текущем виде встроить нельзя. Нужно создать новый, а при
выборе типа приложения указать "Web Server Application". В этом проекте уже
не надо использовать сокеты. Твоему приложеню будут передаваться строки
запросов, а ты должен их обрабатывать и возвращять резульат в виде
html-кода.