webForumDet fria alternativet

Sökvägar ifrån usercontrolls etc...

.NET

2 svar · 248 visningar · startad av desdecado

Medlem sedan juli 2004206 inlägg
Frågan#1

Hej Bullen,

Jag har det stora nöjet (!) att behöva koda på samma site utifrån olika förutsättningar; ibland kör jag siten som en website i IIS'en, ibland som en virtuell web och hur siten sedan kommer att ligga i produktion vet jag inte ännu.

Problemet är; hur ska jag skriva relativa sökvägar i exempelvis usercontrols, och då menar jag själva htmlkoden i editorläga(?) och inte i code-behind'en.

Det enda vettiga jag har hittat har varit att stoppa in typ:

<img src="<%=Request.ApplicationPath%>/folder1/filnamn.gif" />

...men det är ju inte så snyggt när man eg vill köra code behind och jag är inte säker på hur det blir med den extra slashen när man kör siten i ick virtuellt läge. Det löser heller inte exempel där texten är hämtad från databasen och innnehåller img eller interna länkar som ska visas på olika sidor i mapstrukturen.

folder1/filnamn.gif <-- fungerar inte
/folder1/filnamn.gif <--fungerar inte
./folder1/filnamn.gif <-- fungerar inte
../folder1/filnamn.gif <-- funger inte =)
~/folder1/filnamn.gif <-- fungerar bara i kod

Hur gör man? :r

Medlem sedan apr. 20012 266 inlägg
#2

Använder man i stället <asp:Image /> så hanterar även den ~/folder1/filnamn.gif vilket löser lite problem för dig. Annars fungerar <img src="<%=Page.ResolveUrl("~/folder1/filnamn.gif") />

Alternativt använder du relativa sökvägar, ../folder1/filnamn.gif då blir det nästan aldrig problem.

Medlem sedan juli 2004206 inlägg
#3

Men problemet är att tex när jag kör virtuella webbar så får ju dessa denna struktur

localhost/web1/index.aspx
localhost/web2/index.aspx
... etc

Om jag väljer att utgå från rooten så hamnar jag på localhost (default webben). Jag vill ju inte koda med webprojektnamnet i alla anrop, då går det ännu mindre att publicera projektet smärtfritt senare.

Att ha relativa sökvägar som du beskrev går ju inte heller då jag måste utgå från roten, kan inte ha "../" då tex usercontrols får den sökväg som den sida har som inkluderar usercontrollen, alltså det spelar ingen roll om jag vet var usercontrollen är sparad i min mapstruktur, det är den "användande" sidan som bestämmer var i strukturen jag befinner mig.

Problemet är att text som innehåller img-taggar eller länkar och som är lästa ifrån databasen kan ju knappast innehålla .net kod för att skriva ut sökvägar. Inte heller bildreferenser i stylesheets fungerar... =/

edit:
Hmmm, ja man kan ju iofs se till så att *alla* apsx sidor ligger 1 nivå ner i strukturen och på index.aspx göra en server.travel eller response.redirect ner till den "nya" sidan i en undermapp. På så viss har man iaf en struktur som alltid är densamma.

Men hallå, är det år 2005 och man måste begränsa sig såhär pga några jädrans sökvägar? =)

264 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)