ASP.Net Pagina principale e problemi relativi al percorso dei file

Sto cercando di aggiungere un riferimento di script a jQuery nella mia pagina principale in modo che funzioni per qualsiasi pagina. Attualmente sembra così

 

Il problema è che il percorso è sempre relativo alla pagina di aspx in esecuzione, quindi funziona solo se il file “jquery.js” si trova nella stessa cartella. Per farlo funzionare devo cambiare la linea per:

  

Questo è ovviamente meno ideale perché funzionerà solo per le pagine che sono a due livelli dalla cartella radice. Se provo quanto segue, IIS genera un errore su un personaggio inaspettato.

  

Qualche idea?

EDIT: Ho dimenticato di menzionare anche che lo script DEVE essere nel tag head

    La risposta attuale corrente genera un errore ” Caricamento del framework lato client di Ajax ASP.NET non riuscito. ” Quando lo aggiungo alla mia pagina principale. È generato da javascript e non dal compilatore .Net. Se sposto lo ScriptManager nella sezione head dove dovrebbe essere, viene visualizzato un errore di compilazione relativo allo ScriptManager che deve trovarsi all’interno di un tag form.

    La terza risposta genera un’eccezione ” Illegal characters in path. ” Dal compilatore

    EDIT 2: Quando aggiungo quella linea al mio head tag ottengo questo errore da IIS.

    La raccolta Controls non può essere modificata perché il controllo contiene blocchi di codice (cioè )

    RISOLTO: ho preso la risposta modificata dalla risposta in basso e l’ho inserita in un elemento asp: ContentPlaceHolder

    Potresti usare uno ScriptManager :

          

    EDIT: Se hai assolutamente bisogno di questo nella tua sezione , puoi fare qualcosa come:

        

    EDIT 2: Secondo i commenti, se lo stai osservando

    La raccolta Controls non può essere modificata perché il controllo contiene blocchi di codice (cioè <% ...%>)

    potrebbe essere necessario modificare quanto sopra per utilizzare la syntax di associazione dei dati:

        

    Prova <%# invece di <%= nella pagina Master sotto la sezione head

      

    Quindi nella sezione Code Behind della pagina Master all'evento Page_Load

     Page.Header.DataBind(); 

    Ora sei a posto sia con jQuery e JavaScript sia con CSS, basta cambiare il percorso in ResolveUrl che file vuoi gestire CSS, JavaScript, jQuery.

    Se non stai andando a noi asp: ScriptManager o percorsi assoluti, allora puoi farlo in questo modo:

      

    Non so se voi ragazzi avete trovato o meno la soluzione al vostro problema. Stavo affrontando lo stesso problema e impazzivo per capire perché ottengo l’errore “jQuery è indefinito” sui plugin che uso. Ho provato tutte le soluzioni che ottengo da internet ma senza fortuna.

    Ma all’improvviso mi viene in mente qualcosa che potrebbe essere che i file di script dovrebbero essere in ordine. Così, ho spostato il jquery referece in prima posizione e tutto ha iniziato a funzionare come un incantesimo.

    Ricorda ragazzi, se stai usando qualche plugin con jquery, assicurati di usare l’ordine di impostazione del riferimento a quei campi.

    1. riferimento alla libreria jquery
    2. riferimento alle altre librerie plug-in successive e così via …

    per esempio:

    1. “script src =” js / jquery-1.3.2.min.js “type =” text / javascript “…
    2. “script src =” js / jqDnR.min.js “type =” text / javascript “…
    3. “script src =” js / jquery.jqpopup.min.js “type =” text / javascript “…
    4. “script src =” js / jquery.bgiframe.min.js “type =” text / javascript “…

    Assicurati sempre di inserire prima il riferimento jquery e poi le librerie successive.

    Spero, questo risolva il tuo problema soprattutto quando usi con MasterPages. È molto strano che funzioni indipendentemente dall’ordine che si usa quando non si usano MasterPages, ma quando lo si fa, in qualche modo richiede l’ordine corretto.

    Buona fortuna e buon codice,

    Vincent D’Souza

    Guarda come eseguire un root “/” . Questo dovrebbe risolvere tutti i tuoi problemi relativi ai percorsi dei file .js non risolti. Fondamentalmente riconfigurate il server VS Dev per eseguire la vostra applicazione come localhost:port/ in opposizione al localhost:port/application name/ regolare localhost:port/application name/ fare la risoluzione dei nomi funziona allo stesso modo che su IIS.

      

    Se questo tag script va direttamente al browser, è improbabile che possa sostituire la root del tuo sito lì. Almeno non sul server. Così puoi:

    1. Distribuire il sito alla radice del nome di dominio e utilizzare percorsi assoluti (soluzione più semplice).
    2. Inserisci questo link con il controllo del server.
    3. Preelaborare il codice HTML risultante prima di inviarlo al client (con HttpResponse.Filter).

    Puoi anche utilizzare il tag HTML :

      

    e quindi tutti i collegamenti nella sezione dell’intestazione sono relativi all’indirizzo di base:

      

    È spesso utile quando si hanno più destinazioni di pubblicazione, come server di sviluppo locale, server di dimostrazione, ecc. Basta sostituire l’URL di base.

        

    Per il percorso assoluto del file per qualsiasi pagina, utilizzalo come segue: