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:
...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
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.
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