2009-06-22 13 views
5

Estoy tratando de usar la biblioteca jquery en ASP.NET en una subcarpeta llamada "muestras" con una página maestra que se encuentra en el directorio raíz. Actualmente, las referencias a los guiones jquery se encuentran en la etiqueta principal de la página maestra. Si la página que estoy creando también está en el directorio raíz, todo funciona bien. Si muevo la página al subdirectorio "samples", el jquery se rompe.Usando JQuery en una subcarpeta Cuando la página maestra está en la carpeta raíz

puedo solucionar el problema mediante el uso de algo así como lo siguiente en la etiqueta de la cabeza:

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

... pero entonces perdería la capacidad de utilizar IntelliSense jQuery, porque ya no estoy conectado directamente al archivo en tiempo de diseño.

Así que mi pregunta es esta: ¿cómo puedo usar la biblioteca jquery en una página .aspx sin perder conectividad con intellisense cuando mi página está en una subcarpeta y la página maestra está en la raíz?

Respuesta

10

simplemente usar esto:

<script src="/js/jquery.js" type="text/javascript"></script> 

poner /antesjs hacer el truco. Siempre guardo mis archivos css y javascript en carpetas separadas y uso este ajuste para incluirlos correctamente.

de IntelliSense puede intentar este truco:

<%if(true){%> 
    <script src="/js/jquery.js" type="text/javascript"></script> 
<%}%> 

que no soy capaz de recordar el origen de este truco.

+0

que hacer lo mismo, un JavaScript y una carpeta CSS directamente de la raíz y luego usar un servidor URI relativo a apuntar a mi CSS/Archivos JS. – Colin

+0

He verificado que el/before js de hecho permite que el código se ejecute en ambas carpetas (por lo que es una mejor solución que ResolveUrl), pero aún así no me permite ver intellisense. El truco intellisense que enumeró tampoco funciona. – shizbiz

+0

Lo llevo de vuelta. Cuando agrego seguido por <%if(true){%> <%}%> Luego funciona tanto en la raíz como en la subcarpeta, y intellisense funciona en ambos lugares. Lo suficientemente bueno por ahora. Gracias. – shizbiz

1

Se puede usar un gestor de secuencia de comandos para incluir los archivos JS:

<asp:ScriptManager runat="server"> 
    <Scripts> 
     <asp:ScriptReference Path="~/js/jquery.js" /> 
    </Scripts> 
</asp:ScriptManager> 
+0

Esto funciona para ambas carpetas, pero no me conecta con el intellisense . – shizbiz

+0

truco muy útil, lo vi en otro lugar, pero no pude encontrarlo. +1 –

Cuestiones relacionadas