2 回答

TA貢獻1811條經驗 獲得超6個贊
你不能用正則直接替換,而是應該將這些原路徑先提取出來,然后算出其絕對路徑,再去掉host,然后再和你的新路徑合并。
比如 images/new1.jpg,你的程序在打開這個 a.htm 文件時是知道其在 Guid目錄下的,那么你用 Uri 這個類就可以通過輸入當前Uri 和 相對路徑得到絕對路徑是 http://oldhost/Guid/image/new1.jpg.
然后 再用 Uri 這個類獲取其相對路徑 Guid/image/new1.jpg 然后再和 新的host 如 localhost合并就可以了。
../news/images/img2.jpg 也是同理,絕對路徑的出來是 http://oldhost/news/image/img2.jpg
再合并后就是 http://localhost/news/image/img2.jpg

TA貢獻1794條經驗 獲得超8個贊
其實我覺得你可以考慮重構一下程序:如果有時間和必要的話
如果圖片的src都是寫死到文件中的,那么很可惜,你要一個個查找替換了,還好我們有正則表達式可以做這個,不過工作量估計依然不小,而且沒有辦法保證完全正確
如果可以重構,一個小技巧,所以靜態資源,比如圖片腳本樣式之類,從一開始就設計為可分離,比如一個圖片應該是這個樣式滴:
<img src="<%=ResourcesURL%>/news/new1.jpg" alt="new1" />
這個ResourcesURL可以放到web.config里也可以放到數據庫里,隨便哪里都可以,是一個可配置的字符串,這樣當你把圖片分離出去的時候就容易了,尤其當你想把圖片文件放到單獨的二級域名下的時候(放到單獨二級域名可以加速瀏覽器加載速度,可以平衡服務器IO等等,好處多多)
- 2 回答
- 0 關注
- 476 瀏覽
添加回答
舉報