2010-07-06 49 views
1

我有一些jQuery將一些圖像標籤寫入瀏覽器,但我想引用它們使得我不必硬編碼路徑,而我無法使用相對路徑。這是一個.NET應用程序,我試圖使用服務器端標籤。如何在.NET應用程序中引用jQuery中的絕對路徑

於是,我改變了以下內容:

$('#IMG_' + myID).attr('src','../images/plus.gif'); 

到:

$('#IMG_' + myID).attr('src','<%= Url.Content("~/images/plus.gif") %>'); 

或:

$('#IMG_' + myID).attr('src','<%= ResolveUrl("~/images/plus.gif") %>'); 

當它運行時我得到48行的JavaScript錯誤,無效的說法, char3.5的jquery-1.4.2.min.js。

+1

做一個查看源代碼和發佈的信息是越來越提供給客戶端。另外,你安裝了螢火蟲還是你使用IE 8的開發者工具?他們使診斷這些事情變得更容易。 – Rob 2010-07-06 00:45:13

+0

也有助於在dev \ debug模式下不使用縮小版本的腳本。你從非分鐘js得到更好的錯誤信息。 – redsquare 2010-07-06 00:47:43

+2

愚蠢的問題,但只是檢查:此代碼是在aspx頁面上,而不是.js文件,對吧? – 2010-07-06 00:57:25

回答

2

這件事情我已經在做幾個項目。它旨在與ASP.NET MVC一起使用,但我想它也可以用於WebForms。

腳本:common.js

function Environment() { }  
Environment.vroot = ''; 

Environment.getUrl = function(path) { 
    return Environment.vroot + path; 
}; 

局部視圖/用戶控件:CommonScript.ascx

<script type="text/javascript"> 
    Environment.vroot = '<%= Url.Content("~/") %>'; 
</script> 

我只是把我的CommonScript.ascx母版頁上,但你可以把它放在任何你想要的地方。它需要腳本引用common.js雖然。

如果你使用這個,你可以做到這一點來設置你的形象網址:

$('#IMG_' + myID).attr('src', Environment.getUrl('images/plus.gif')); 
+0

這對我有用。這與我在ASP.NET端使用的模式相同。我想我現在會用這個。謝謝! – Sephrial 2010-07-14 21:37:59

1

如果你不使用任何環境中的虛擬目錄,你可以只使用/images/plus.gif

如果您的網站有這樣一個localhost/mysite/default.aspx網址將無法正常工作

+0

我試過只是/images/plus.gif,但沒有奏效。什麼工作是/PROJNAME.Web/images/plus.gif。有沒有什麼時候/PROJNAME.Web/會導致問題? – Sephrial 2010-07-07 20:57:36

相關問題