2012-06-18 68 views
1

我最近爲我的客戶創建了一個目錄。該網站是完整的,但他想要一個複製版本的網站,以便他可以測試該網站並學習如何使用它。複製網站的最佳方法

要完全複製他的網站,將需要幾個小時,因爲我將不得不更改網站中的每個超鏈接和URL。

因爲我的客戶有點過分,希望能夠快速完成,我想知道是否可以創建一個測試網站並添加一個JavaScript代碼,每次都會替換他的URL(直到我創建完整的測試解決方案? )。

例如,如果它是:

<a href="www.mydomain.com/contact-us">Test</a> 

,將它替換到:

<a href="www.mydomain.com/test/contact-us"></a> 

這是更多鈔票? 是否建議暫時使用,直到我創建完整的測試解決方案?

+16

「_I將不得不更改網站中的每個超鏈接和URL」 - 爲什麼?你沒有使用相對URL嗎? – Widor

+0

你的發展戰略是什麼樣的?你有測試代碼的開發服務器嗎?也許你可以讓你的客戶玩這個。 –

+0

談談把自己畫到角落裏:P – deceze

回答

1

在Notepad ++或支持文件替換的任何編輯器中打開站點文件,然後通過文件進行替換(N ++將自動爲您執行此操作),用配置變量替換實時URL,然後將URL變量設置爲期望用於測試場地。

現在你有一個URL的配置變量,如果客戶想要更改域名或者你想在其他地方部署,這將很容易。

3

實際上,您應該使用相對路徑,以便文件相互交互,而不管文件在哪裏存在。

這就是說,這裏是一個可以快速的JS解決方案,您可以使用暫且當你讓你的鏈接相對而不是絕對的:

$("a").each(function() { 
    var href = this.href; 
    href = href.replace("mydomain.com/", "mydomain.com/test/"); 
    this.href = href; 
}); 
1

這當然是可能的超鏈接梳理與JavaScript,特別是對於像jQuery這樣的框架來說,這確實很容易。

$('a').each(Function(e){ 
e.attr('href', e.attr('href').replace(/http:\/\/mainsite.com/gi, 'http://newsite.com')); 
}); 

希望你的css文件,鏈接hrefs等URL是相對的,否則你也需要改變它們。在這一點上,php解決方案會更合適。

+1

'a'應該引用像'$('a')。each' – MrCode

+0

不錯的捕獲,更新 –

0

wget命令行實用程序有一個--convert-links選項。如果您使用該選項下載網站,則wget將以「本地瀏覽可靠工作」的方式轉換鏈接。

相關問題