2012年3月21日 星期三

[ASPNET] 引用檔案路徑設定的問題

ASP.NET引用檔案路徑設定的問題

問題:
開發ASP.NET網站時,使用MasterPageContentPage,因為ContentPage會放在各個資料夾下,引用的圖片或JS檔,也是放置於不同的資料夾(如下圖)。


或是因為網域的關係,導致引用圖片的路徑,在開發時雖然可正常顯示,但在runtime或發佈到其它server後,出現路徑錯誤叉燒包的情況。
<img src="../images/Test.jpg" alt="" />
<img src="~/images/Test.jpg" alt="" />



解決方式:
1.       Web.config裡設定一組網站的URL路徑,關鍵字為:WebUrl
<appSettings>
    <add key="WebUrl" value="http://localhost:8080/My_Web/" />
  </appSettings>
   
   
PS. 正式上線時要換成網域名稱或對外IP

2.       專案加入一個公開類別,新增一個 static字串成員來讀取剛才設定的WebUrl :
public class Common
{
public static string WebUrl = WebConfigurationManager.AppSettings["WebUrl"];
}

接下來只要在HTML裡面的圖片或是js路徑設定為:
<IMG src="<%= Common.WebUrl  %>images/xxxx.gif">
<script type="text/javascript" src="<%= Common.WebUrl %>javascript/XXX.js"/>

這樣就可以正確設定圖片或js的路徑,不會出現叉燒包。

沒有留言:

張貼留言