Я использую один редактор WYSIWYG в небольшой CMS. Он позволяет пользователям загружать файлы, изображения и т. Д. Если я добавлю изображение с именем dog.jpg, в исходном коде я получу:
<img src="/myweb/userfiles/images/dog.jpg" />
Я могу сохранить это в базе данных и использовать позже на любой странице, пока не переместу свой сайт в действующий домен.
myweb - это виртуальный каталог в IIS. «/» указывает на root, в данном случае localhost, поэтому я должен использовать «/ myweb». Однако, когда я загружаю сайт на сервер и копирую базу данных, все ссылки будут разорваны, поскольку на сервере нет папки «myweb».
Моя идея состояла в том, чтобы заменить "/ myweb" при сохранении пустой строкой. Я также должен заменить полный URL, который редактор создает для некоторых файлов. На дисплее я должен добавить правильный каталог приложения. Вероятно, я бы сохранил обе версии в базе данных, и только при изменении сервера принудительно обновлять отображаемую версию.
К настоящему времени я придумал:
p = p.Replace("href=\"" + fullUrl, "href=\"").Replace("src=\"" + fullUrl, "src=\"").Replace("href=\"" + partialUrl, "href=\"").Replace("src=\"" + partialUrl, "src=\"");
Что некрасиво, трудно поддерживать и неэффективно. Я полагаю, лучше подходить к использованию регулярных выражений, но я не знаю, как это сделать.
Мой вопрос: может ли кто-нибудь порекомендовать хорошую статью, пост в блоге / на форуме по этому поводу? Если у вас есть другое решение, отлично.