亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于網站動態部分與靜態部分分離..

關于網站動態部分與靜態部分分離..

楊__羊羊 2018-11-14 05:02:08
現在我有這樣一個需求, 把網站的動態部分,例如html,asp,aspx部分,和靜態部分,例如jpg,gif,等等類似的進行分離,分別放在兩臺服務器上,,我現在需要把已經存在的網站的這兩部分進行分離,請問下各位大俠有沒什么高見?  我用程序雖然吧圖片按原始目錄分離出來了.文件也能按原始目錄進行分離,但是 文件里面的圖片路徑進行替換就感到很難處理,比如<img src="../image/new1.jpg"> 需要被轉換成 <img src=http://localhost/image/new1.jpg>,像這樣簡單的路徑還容易替換,但是 像 Guid文件夾里有個a.html頁面,里面包含2個圖片文件 圖片1<img src="images/new1.jpg"/> 圖片2 <img src="../news/images/img2.jpg"/> ,圖片1引用了Guid文件夾內images下的new1.jpg文件,但是 圖片2 卻引用了 Guid同及目錄 news下的images文件夾的img2.jpg..本來我是用正則表達式統一替換,單這樣不同目錄的引用被替換后就成了<img src=http://localhost/Guid/image/new1.jpg 與 http://localhost/Guid/News/images/img2.jpg ,很明顯New/images/img2.jpg不在Guid目錄下面,所以這類似的問題交錯出現,很是麻煩,還往各位高人幫下忙.. 提個解決的思路... 多謝.
查看完整描述

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


查看完整回答
反對 回復 2018-11-19
?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

其實我覺得你可以考慮重構一下程序:如果有時間和必要的話

如果圖片的src都是寫死到文件中的,那么很可惜,你要一個個查找替換了,還好我們有正則表達式可以做這個,不過工作量估計依然不小,而且沒有辦法保證完全正確

如果可以重構,一個小技巧,所以靜態資源,比如圖片腳本樣式之類,從一開始就設計為可分離,比如一個圖片應該是這個樣式滴:

<img src="<%=ResourcesURL%>/news/new1.jpg" alt="new1" />

這個ResourcesURL可以放到web.config里也可以放到數據庫里,隨便哪里都可以,是一個可配置的字符串,這樣當你把圖片分離出去的時候就容易了,尤其當你想把圖片文件放到單獨的二級域名下的時候(放到單獨二級域名可以加速瀏覽器加載速度,可以平衡服務器IO等等,好處多多)


查看完整回答
反對 回復 2018-11-19
  • 2 回答
  • 0 關注
  • 476 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號