Asp.net
ASP.Net 母版頁和文件路徑問題
我正在嘗試在我的母版頁中添加對 jQuery 的腳本引用,以便它適用於任何頁面。目前看起來像這樣
<script type="text/javascript" src="jquery.js"></script>問題是路徑總是相對於正在執行的 aspx 頁面,所以這只有在“jquery.js”文件位於同一文件夾中時才有效。為了使它起作用,我必須將行更改為:
<script type="text/javascript" src="../../jquery.js"></script>這顯然不太理想,因為它僅適用於距根文件夾兩層深的頁面。如果我嘗試以下操作,IIS 會引發有關意外字元的錯誤。
<script runat="server" type="text/javascript" src="~/jquery.js"></script>有任何想法嗎?
**編輯:**我也忘了提到腳本必須在 head 標籤中
目前的最佳答案在我將其添加到我的母版頁時會引發“ *ASP.NET Ajax 客戶端框架無法載入。 ”錯誤。*它是從 javascript 而不是 .Net 編譯器拋出的。如果我將 ScriptManager 移動到應該在的 head 部分,我會收到一個關於 ScriptManager 需要位於表單標記內的編譯錯誤。
第三個答案從編譯器拋出“路徑中的非法字元。 ”異常
**編輯 2:**當我將該行添加到我的 head 標籤時,我從 IIS 收到此錯誤。
無法修改 Controls 集合,因為該控制項包含程式碼塊(即 <% … %>)
**已解決:**我從下面的答案中獲取了編輯後的響應並將其放入asp:ContentPlaceHolder元素中
您可以使用
ScriptManager:<asp:ScriptManager ID="ScriptManager1" runat="server"> <Scripts> <asp:ScriptReference Path="~/jquery.js" /> </Scripts> </asp:ScriptManager>**編輯:**如果你在你的部分絕對需要這個
<head>,你可以這樣做:<head> <script type="text/javascript" src="<%= Page.ResolveClientUrl("~/jquery.js") %>"></script> </head>**編輯2:**根據評論,如果您觀察到
無法修改 Controls 集合,因為該控制項包含程式碼塊(即 <% … %>)
您可能需要更改以上內容以使用數據綁定語法:
<head> <script type="text/javascript" src="<%# Page.ResolveClientUrl("~/jquery.js") %>"></script> </head>