2010-04-08 12 views
7

Tengo un sitio donde estoy tratando de implementar un jQuery UI basado en MessageBox en mi página maestra. Las páginas de contenido se organizan de acuerdo con las carpetas del área comercial, es decir, '~/Branding/Contracts.aspx'. Me parece que cuando cargo una página de contenido así, jQuery, que se referencia en la página maestra como se muestra a continuación, no se carga. Supongo que esto se debe a que el navegador solicita 'Branding/Scripts/jQuery'. ¿Qué puedo hacer sobre esto? No tengo el operador 'root' en una etiqueta simple 'script'.jQuery no se carga en la página maestra cuando la página de contenido está en una carpeta secundaria

<script src="/Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<script src="Scripts/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script> 

Respuesta

9

utilizar esto en su MasterPage

<script src="<%= ResolveUrl("~/Scripts/jquery-1.3.2.js") %>" type="text/javascript" /> 

Por favor, hágamelo saber si se enfrentan a cualquier problema más.

+0

Mis dos centavos. La etiqueta ''. '

1

Una opción es "externalizar" su llamada a jQuery para algo así como Googles AJAX libraries. Esto le dará la ventaja adicional de que sus clientes posiblemente ya tengan una versión en caché de jQuery.

usar http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js

Esta costumbre le ayuda si tiene otros scripts personalizados por supuesto. Para eso uso lo siguiente en el evento de carga de página de la página maestra para cargar mis sciprts comunes.

 HtmlGenericControl myJs = new HtmlGenericControl(); 
     myJs.TagName = "script"; myJs.Attributes.Add("type", "text/javascript"); 
     myJs.Attributes.Add("language", "javascript"); //don't need it usually but for cross browser. 
     myJs.Attributes.Add("src", ResolveUrl("~/scripts/jquery-ui-1.7.2.custom.min.js")); 
     this.Page.Header.Controls.Add(myJs); 

Normalmente se configura como una función con un paremter para la ruta del script para facilitar la carga de archivos js multibles.

Oda al Código tiene un artículo fantatic en las páginas principales y este tipo de cosas:

http://odetocode.com/Articles/450.aspx

0

Sé que esto es viejo, pero alguien puede encontrarlo como yo. De todos modos, puede registrar estos scripts utilizando el objeto ASP ScriptManager.

<asp:ScriptManager ID="ScriptManager" runat="server"> 
    <Scripts> 
     <asp:ScriptReference Path="Scripts/jquery-1.8.3.js" /> 
     <asp:ScriptReference Path="Scripts/bootstrap.js" /> 
     <asp:ScriptReference Path="Scripts/general.js" /> 
    </Scripts> 
</asp:ScriptManager> 

Esto mantendrá sus scripts cargados sin utilizar una Page.ResolveUrl. Solo una preferencia, supongo.

Cuestiones relacionadas