2010-01-14 36 views
2

是否有替代方案,除了在本地測試網站時修改HOSTS來設置臨時域?我在Win7上使用IIS7。設置用於測試網站的本地IIS7

我不想使用/ localhost/domainname。我寧願做/域名,所以我不必擔心文件路徑等。我的網站設置,以便文件路徑是相對於根文件夾而不是頁面。

+2

如果你的路徑是相對的,那麼爲什麼基本URL很重要? – 2010-01-14 23:30:01

回答

2

除非您的代碼明確檢查域名,否則您應該能夠在II7上部署並通過http://localhost進行測試。

有這種方法一些注意事項,但:

  • 如果您正在使用第三方API,需要依賴於你的域名的應用程序的關鍵,你可能必須要求兩個按鍵 - 一個爲域名(爲了PROD的目的)和一個爲localhost(爲了DEV的目的)。我同時使用Google Ajax API和Facebook Connect鍵。
  • http://localhost在IE瀏覽器中的安全區域與普通網站不同,因此如果您的應用使用任何需要跨域通信的AP(如Facebook Connect),則可能在IE7上測試時出現問題。像Chrome上的魅力一樣工作,似乎在IE8上正常工作。
  • 如果您同時在多個應用程序上工作,則不能讓所有人都同時在端口80上偵聽。所以,一些應用程序將不得不被移動到http://localhost:8080或另一個端口。

我的方法是在開發期間在端口808x上運行VS Dev WebServer(Cassini),並在端口888x上部署到本地IIS7(使用CruiseControl.Net)。這使我可以在處理代碼時輕鬆地使用VS進行調試,但仍然將該站點設置爲IIS7中等信任。

我也有指着我的dev的機器目標域中的主機名,所以IIS7的情況下都可以同時作爲http://localhost:888xhttp://dev.domain.com:888x,這讓我也測試與谷歌的Ajax和Facebook API的連接域融合。當然,這需要控制域名DNS以及向其添加A記錄的能力。

但是,請注意,此設置中沒有任何內容需要對域URL進行實際測試。

+0

不同港口上的每個站點都是最簡單的方式 - +1指出有趣的警告。 – Filburt 2010-01-14 23:54:03

+0

我喜歡你的話。因爲我在同一時間在多個站點上工作,所以我希望在每次我想在部署之前測試站點時,都不必在IIS中更改本地主機以指向其他服務器。但是,回想起來,也許這就是我的解決方案。我在Dreamweaver中做.net和php項目,所以一直在尋找一種適用於這兩者的解決方案。雖然我完全同意Cassini是.Net的最佳選擇。 – 2010-01-15 00:23:41

+0

只需使用不同的端口並將這兩個解決方案部署爲IIS7網站 - 您的.Net到http:// localhost:8881和您的PHP在http:// localhost:8882上。這樣你就可以同時運行。 – 2010-01-15 00:59:47