Logo UGIdotNET

Discussione 'Path script e css su UserControl'

# Pubblicato il 18 ott 2002 12.05 - Rispondi
Piero Capomastri
Path script e css su UserControl
Ho creato uno UserControl che utilizza 1 file css e 1 file javascript.
Nello userControl ho:
<link rel="stylesheet" href="css/navbar.css" type="text/css">
<script language="JavaScript" src="/script/ShowHideObjHtml.js"></script>

Il problema nasce quando lo usercontrol viene incluso in pagine che non si trovano sulla root del sito perchè i file non vengono più trovati (il path ovviamente è sbagliato)
Se utilizzo un URL relativo alla directory principale ugualmente non funziona:
"/cartellaprincipale/css/navbar.css" e
"/cartellaprincipale/script/ShowHideObjHtml.js"
oppure
"//cartellaprincipale/css/navbar.css" e
"//cartellaprincipale/script/ShowHideObjHtml.js"
oppure
"//css/navbar.css" e
"//script/ShowHideObjHtml.js"
oppure
"/css/navbar.css" e
"/script/ShowHideObjHtml.js"

Come posso fare?
# Pubblicato il 18 ott 2002 12.12 - Rispondi
Marco Barzaghi
Re: Path script e css su UserControl
la via migliore, a mio parere, è usare degli URL assoluti:

http://server/myproject/css/file.css
oppure
/myproject/css/file.css

a tal proposito potrebbero nascere dei problemi quando passi da fase di test, dove potresti usare una virtual directory, a produzione quando usi un virtual site... dove i path assoluti giustamente cambiano.

A tal proposito ti suggerisco di usare il tag html base

<base href="http://server/myproject/">
e il percorso del css a qsto punto è: css/file.css

oppure qndo si passa a virtual site
<base href="http://myprojectdomain/">
e il percorso del css a qsto punto è esattamente lo stesso: css/file.css

il tag base va specificato in ogni pagina, quindi o incluso in uno usercontrol o il valore da assegnare a href potrebbe essere ricavato dal file di configuraizone web.config

ciao
M.
# Pubblicato il 18 ott 2002 12.29 - Rispondi
Marco Barzaghi
Re: Path script e css su UserControl
se non intendi usare il tag base ma comunque ti sembra buona cosa il suggerimento di usare il path assoluti, nulla ti vieta di comporre il path usando il "prefisso" impostato da codice, meglio se configurato nel file di configurazione web.config.

<%dim baseRoot as string = "http://myserver/myproject/"%>
<link rel="stylesheet" href="<%=baseRoot%>css/navbar.css" type="text/css">

potresti inserire la varaibile baseRoot nella classe Global, Globas. asax, e sviluppare dei metodi per leggerla... esempio:

<link rel="stylesheet" href="<%=Global.GetBaseRoot()%>css/navbar.css" type="text/css">

ciao
M.
# Pubblicato il 18 ott 2002 12.40 - Rispondi
Piero Capomastri
Re: Path script e css su UserControl
Un'ultima cosa, come faccio a salvarlo sul web.config e a ripescarlo.
Non ho mai usato il web.config....
# Pubblicato il 18 ott 2002 12.45 - Rispondi
Marco Barzaghi
Re: Path script e css su UserControl
a tal proposito puoi leggere il tip http://www.ugidotnet.org/tips/tips_read.aspx?ID=22
in linea di massima per leggere dal web.config:

Dim myBaseRoot as String = ConfigurationSettings.AppSettings("baseroot")

il web.config va impostato manualmente come specificato nel tip.

ciao
M.rkino

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185