23. september 2005 - 20:21Der er
5 kommentarer og 1 løsning
referencer : absolutte, root directory eller?
Hvad betyder "~/Filnavn.aspx"? Jeg tænker på tilden i starten. Er det et alias for rootdirectory?
Jeg har visse problemer med det i ASP.NET 2.0, hvor f.eks. den automatisk genererede kode skriver MasterPageFile="~/MasterPage.master" for at referere til en MasterPage. Det får mig til at tro at ~ har noget at gøre med root directory for webapplikationen. Men hvis jeg ændrer en billed-reference fra "img/billede.jpg" (som virker fint) til "~img/billede.jpg", så virker det ikke?
ok, så det er altså en henvisning til roden... Jeg kører den ellers 'serverside' idet serveren bare kører lokalt på min egen maskine...? Måske er det en fejl i .NET 2.0 beta?
Referencen "img/billede.jpg" betyder, at den skal hente billedet fra et underbibliotek til det nuværende bibliotek, mens "~/img/billede.jpg" betyder at den skal hente det i et underbibliotek til webstedets root-directory ...
-- og det kan sagtens være det samme (men husk skråstregen efter tilden !-)
Normalt bruger man relative stier, hvor ../ betyder et niveau op og / alene betyder webstedets rootdirectory, men det vil lokalt blive fortolket anderledes, da du lokalt har adgang til hele filsystemet, så / betyder c:\ (typisk !-), hvor du vil have det til at betyde f.eks. C:\Inetpub\wwwroot\DitWebSite, der gætter jeg på, at .NET-runtimen laver nummeret for dig ved hjælp af tilden !o]
På en ekstern server vil der slet ikke være de samme problemer, da webserveren effektivt vil forhindre adgang til noget udenfor websitets egen mappe ...
-- og står du så i dit rod-bibliotek på webserveren vil du ikke kunne bruge ../ til at kravle et niveau op, det tillader serveren simpelthen ikke !-)
Okay jeg har prøvet at uploade til serveren, og der virker det heller ikke? Iøvrigt havde jeg skrevet en trykfejl i mit oprindelige indlæg: Jeg prøver at ændre referencen til "~/img/billede.jpg". Det skulle betyde det samme som "img/billede.jpg", når den fil hvorfra jeg prøver at hente billedet er i root-directory, ikke sandt?
Hvad er iøvrigt root directory for websitet? Jeg kan prøve at skitsere hvad jeg ser, når jeg åbner mit FTP-program:
På øverste niveau en masse mapper, bla. bin og WWW. Det er i mappen WWW jeg lægger mine aspx-filer, og jeg går ud fra at WWW så er rootdirectory for webapplikationen? Det er jo der, min default.aspx ligger. Videre: I WWW-mappen liggger så bla. img-mappen, hvori mine billeder ligger. I WWW mappen ligger også min MasterPage med bla. referencen url(img/banner.jpg). Så er det jeg tænker, at det må være det samme som url(~/img/banner.jpg)? MEN DET VIRKER IKKE???
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.