我在一个小 cms 中使用一个所见即所得的编辑器。它允许用户上传文件、图像等。如果我在源代码中添加名为 dog.jpg 的图像,我将得到:
<img src="/myweb/userfiles/images/dog.jpg" />
我可以将其保存到数据库并稍后在任何页面上使用它,直到我将我的站点移动到一个活动域。
myweb 是 IIS 中的虚拟目录。“/”指向根目录,在本例中为 localhost,所以我必须使用“/myweb”。但是,当我将站点上传到服务器并在那里复制数据库时,所有链接都会被破坏,因为服务器上没有“myweb”文件夹。
我的想法是用空字符串替换保存时的“/myweb”。我还必须替换编辑器为某些文件创建的完整 url。在显示时,我必须添加正确的应用程序目录。我可能会将这两个版本都保存在数据库中,并且仅在服务器更改时强制显示版本进行更新。
到目前为止,我想出了:
p = p.Replace("href=\"" + fullUrl, "href=\"").Replace("src=\"" + fullUrl, "src=\"").Replace("href=\"" + partialUrl, "href=\"").Replace("src=\"" + partialUrl, "src=\"");
这是丑陋的,难以维护且效率低下。我想更好的方法是使用正则表达式,但我不知道该怎么做。
我的问题是,任何人都可以推荐关于此的好文章、博客/论坛帖子吗?如果您有其他解决方案,那就太好了。