2013-12-21 66 views
0

我在我的應用程序的根部有這個非常簡單的頁面。以下內容無法加載jQuery。但是,如果我從路徑中刪除〜/,那麼jQuery會加載並警告工作。有什麼問題?爲什麼jQuery無法加載?

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script src="~/Scripts/jquery-2.0.3.js"></script> 
    <script> 
     $(document).ready(function() { 
      alert('hello'); 
     }); 
    </script> 
</head> 
<body> 
</body> 
</html> 

回答

1

首先驗證您的「〜」路徑是否正確。這看起來像是在服務器端指令與客戶端混淆。

<script src='<%= Page.ResolveUrl("~/Scripts/jquery-2.0.3.js") %>'></script> 

然後,我會建議將您的document.ready腳本塊移動到「正上方」關閉身體標記。

+0

不喜歡有一個ASP.NET標籤:)) – nphx

+0

對不起,錯過了asp.net標籤。 –

1

下面的鏈接將解釋以及有關路徑格式,aspx頁面:

ASP.NET Web Site Paths

的代碼行更改爲如下會幫助你,因爲它從你的網站的根取參考。

<script src='/Scripts/jquery-2.0.3.js'></script> 

從上面的鏈接看到這個:

可以在服務器上使用〜運算符中的任何路徑相關的屬性 控制。 〜運算符僅在服務器控件和 服務器代碼中被識別。您不能對客戶端元素使用〜運算符。

+0

做了訣竅 – WhiskerBiscuit

0

嘗試簡單的事情

<head runat="server"> 
    <script src="~/Scripts/jquery-2.0.3.js"></script> 
</head> 

當你頭runtat = '服務器',那麼你〜/應該工作正常親愛

:d

0

值得一提的是,在MVC 4 Razor 2和ASP.Net網頁,「代字符斜槓功能」應該工作得很好。

例如 <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />

你會發現上面的默認腳手架(_Layout.cshtml or vbhtml)時

  • 添加無論是New Web Site -> ASP.Net Web Site (Razor 2)
  • 添加新Project -> C#/VB -> Web -> ASP.Net MVC 4 Web Application -> Razor Engine

個REF:

The Top Features in ASP.NET Web Pages 2

您現在可以在標記中包含〜運算符來引用站點根,而不使用Href函數。 (也就是說,Razor解析器現在可以查找並解析〜操作符,而不需要對Href進行明確的方法調用。)Href方法仍然有效,所以這不是一個重大改變。

例如,如果你以前有類似這樣的標記:

<a href="@Href("~/Default.cshtml")">Home</a>

現在,您可以使用類似這樣的標記:

<a href="~/Default.cshtml">Home</a>