När jag med IMCE till BUEditor laddar upp bilder som jag vill inkludera i brödtext noterar jag att sökvägen blir som följer:
< img src="/mysite_drupal/sites/default/files/mypicture.jpg" width="xx" height="yy" alt="My Picture" />"
Jag tycker det känns icke-önskvärt att det på varje ställe en fil refereras göra det med en sådan komplett sökväg, kan man undvika det på något sätt? Om jag exempelvis flyttar sajten till en annan katalog än "mysite_drupal" ovan så kommer ju alla sökvägar att bli felaktiga. Finns det inget sätt att undvika detta så att man endast behöver ange sökväg relativt files-foldern?
Måhända bekymrar jag mig för något som inte är ett problem, men jag tyckte det kändes icke-bra med sådana sökvägar. Någon som har kloka tankar kring detta?

Comments
Sökvägen blir det den blir, men...
Sökvägen blir det den blir eftersom det är sökvägen. :-) Vill du ha en annan sökväg så kan du flytta
fileskatalogen.Du kan dock maskera sökvägen med hjälp av rewrite regler. Följande rewrite_mod snutt avbildar
/files/<path-to-file>på/sites/example.com/files/<path-to-file>:Ett mer sofistikerat sätt är följande snutt som avbildar
/images/<imagecache-preset>/<path-to-image-file>på/sites/example.com/files/imagecache/<imagecache-preset>/images/<path-to-image-file>.Men eftersom detta sker utanför Drupal så kommer Drupal moduler så som fortfarande att skapa URL:er i stil med
/sites/example.com/files/....URL:er i brödtext, t.ex. de som IMCE skapar, kan du modifiera själv. Övriga kan du modifiera genom att implementera
custom_url_rewrite_outbound()isettings.php.Den enda helautomatiska och heltäckande lösningen är att framför Apache sätta en reverse proxy som skriver om utgående länkar.
Thomas Barregren – NodeOne
Flera problem med sökvägar
Det verkar finnas en hög problem som är knutet till just rootsökvägar. Ett flertal moduler tål inte att man lägger sin drupalinstallation i en undermapp på den aktuella servern. Ett exempel är Imagecache.
Ska det verkligen vara så bökigt? Varför finns det inte ett standardsätt i Drupal att fixa det här?
Efter att ha läst koden för hur Drupal hittar "/sites" så tycker man att det borde funka, men alla moduler använder inte den koden. Ett annat problem är det som är nämnt ovan. Vissa moduler anpassar inte sökvägen till miljön, voiklet gör att t.ex. bilder inte visas som de ska.
T.ex. i views vill jag lägga till ikoner när jag visar vissa värden. Här får jag skriva hela sökvägen för att de ska komma med, något som blir ett problem när siten ska köras i roten. Det går iofs att lösa genom att autoparsa/ändra MySQLdumpen när siten ska flyttas.
Vi har temporärt löst det här med en egen funktion i templates.php som stoppar in rätt undermapp i början av sökvägarna när så behövs, i andra fall har vi varit tvugna att ta bort början av sökvägen. Kanske är lösningen ovan en bättre variant.
Jag har precis börjat bli varm i kläderna vad gäller Drupal, så det finns saker jag än så länge inte fullt behärskar, men det här känns fel på flera plan.
//Fredric
En ny fråga trivs bäst i en ny post
Ett kanske väl basalt tips men har du satt "RewriteBase" för mod_rewrite i din htaccess-fil?
RewriteBase
Intressant. På min skarpa server har jag mina sajter i underkataloger till htdocs (kan inte definiera olika virtuella servrar med olika htdocs-kataloger). Det innebär att filsökvägarna blir /htdocs/siteXXX/sites/default/files/YYY.jpg för bildfiler i /files. Detta är mitt största problem, ty jag vill kunna flytta eller kopiera sajten till annan server utan att skriva om alla sökvägar för filer. Jag testade att skriva RewriteBase /htdocs/siteXXX i .htaccess men jag lyckas ändå inte få kortare sökvägar att fungera. Några tips, var halkar jag fel eller är det jag vill göra inte görbart?
Nu blandar vi äpplen och päron
Förslaget att använda
RewriteBasevar svar på @Badgers fråga och ej svar på din ursprungliga fråga. Som sagt: "En ny fråga trivs bäst i en ny post".Det finns
RewriteBasei.htaccesssom används av Apache för att skriva om inkommande URL:er från t.ex./filestill/sites/default/files. Och det finns$base_urlisettings.phpsom används av Drupal för att i HTML stoppa in ett<base>-element, som instruerar webbläsare att på alla relativa URL:er skall föregås av det i$base_urlangivna prefixet.Medan
RewriteBaseanvänds för att skapa "fiktiva" URL:er, så används$base_urlför maskera den del av en URL som anger i vilken underkatalog till en värds dokumentrot som självaste webbplatsen finns. Det är det senare du söker. Sätt$base=url = 'siteXXX'så kommer Drupal spara bilder och andra filer utan detta prefix, medan webbläsare kommer haka på det. Effekten blir den önskade.Thomas Barregren – NodeOne
Fortsätter med päronfrågan
Thomas, du har helt rätt i att det är det senare jag är ute efter. För att vara konkret och frångå mina tidigare fiktiva namnval så finns denna sajt på url http://www.ludd.ltu.se/~larsman/lejonsson/. När jag lägger in bilder i /sites/default/files så måste dessa refereras enligt exempelvis < img src="/~larsman/lejonsson/sites/default/files/lejon060715liten.jpg" width="210" height="300" alt="lejon060715liten.jpg" /> för att det ska fungera, vilket givetvis inte är önskvärt utan jag vill undvika "/~larsman" då detta inte följer med om jag skulle flytta sajten. Jag har testat att enligt ovan givna tips sätta $base_url = 'http://www.ludd.ltu.se/~larsman/lejonsson'; i settings.php men det tycks inte göra någon skillnad. Har jag missförstått, vilken borde skillnaden bli?
IMCE och sökvägar, än en gång
Nu har jag rotat runt med detta i några dagar och mitt problem tycks vara med IMCE. Om jag sätter $base_url = 'http://www.ludd.ltu.se/~larsman/lejonsson'; i settings.php, där lejonsson alltså är drupalkatalogen för sajten, så kommer jag att kunna lägga in bild i brödtext genom länk av typen < img src="sites/default/files/lejon060715liten.jpg" />. Om jag däremot lägger in bilden med hjälp av imce så kommer sökvägen /sites/default/files att visas i filutforskaren, men den länk som returneras till BUeditor som jag använder kommer att vara "/~larsman/lejonsson/sites/default/files/lejon060715liten.jpg", dvs en absolut sökväg. Som det är nu måste jag komma ihåg att editera bort prefixet "/~larsman/lejonsson/" för varje bild jag lägger in, inte så smidigt och absolut inte önskvärt när jag ska låta andra tillföra innehåll på sajten och lägga in bilder. Om jag inte gör denna editering får jag problem med sökvägarna när jag kör sajten på en annan server (tex kopian i min labbmiljö). Kan man påverka hur IMCE formulerar sökvägen som den returnerar till editorn så att den inte har med det störande prefixet utan anger sökvägarna såsom "sites/default/files..."?