ASP.NET引用檔案路徑設定的問題
問題:
開發ASP.NET網站時,使用MasterPage和ContentPage,因為ContentPage會放在各個資料夾下,引用的圖片或JS檔,也是放置於不同的資料夾(如下圖)。
問題:
開發ASP.NET網站時,使用MasterPage和ContentPage,因為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。
PS. 正式上線時要換成網域名稱或對外IP。
2. 專案加入一個公開類別,新增一個 static字串成員來讀取剛才設定的WebUrl :
public class Common
{
public static string WebUrl = WebConfigurationManager.AppSettings["WebUrl"];
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的路徑,不會出現叉燒包。
沒有留言:
張貼留言