Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 07. Januar 2011 23:56
- Pulli
- probiert CMS/ms aus
- Registriert: 21. November 2010
- Beiträge: 83
- Webseite
[GELÖST] Falsche Pfadangaben von Grafiken
Hallo Zusammen,
habe auch mal eine kurze Frage (hoffe ich zumindest...also das sie kurz ist).
Bin gerade dabei ein freies Template in CMSms einzupflegen.
An sich geht es soweit auch gut, aber folgender Fehler tritt dabei auf:
Beispiel:
[== CSS ==]
.hbg {
background:url(uploads/images/header.jpg) repeat-x top;
height:216px;
}
[== Template ==]
<div class="hbg"> </div>
Die Grafik wird aber nicht angezeigt. Es ist zwar ein gewisser Platz für die Grafik quasi freigeblieben, aber die Grafik selbst wird nicht angezeigt.
Jetzt kommt das komische...
Wenn ich im dem Platz, wo die Grafik angezeigt werden sollte, einen rechten Mausklick mache und Hintergrundgrafik anzeigen wähle erscheint folgender Link:
..../cms/tmp/cache/uploads/images/header.jpg
Außerdem eine 404 Fehlermeldung...an sich logisch, denn der korrekte Pfad müsste heißen uploads/images/header.jpg
Hat einer von Euch ne Lösung ?
Vielen Dank und Schöne Grüße
Marco
Beitrag geändert von Pulli (07. Januar 2011 19:00)
Offline
#2 07. Januar 2011 00:20
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: [GELÖST] Falsche Pfadangaben von Grafiken
Lass mich raten: Du verwendest im Template den {cms_stylesheet} Tag?
Der Vorteil dabei ist, dass die Stylesheets als Dateien statisch ausgelagert werden was zu mehr Performance führen kann.
Der Nachteil ist allerdings, dass diese Dateien im Verzeichnis /tmp/cache/ abgelegt werden und der Browser bei relativen Pfadangaben die Bilder immer relativ zum Ort des Stylesheets sucht.
D.h. sind die Stylesheets im root gibt es keine Probleme, denn uploads/images relativ zum root bleibt uploads/images.
Sind die Styles "woanders", müssen auch die Bilder relativ zum "woanders" sein.
(Kurz bei Dir müssten sich die Bilder tatsächlich in /tmp/cache/uploads/images befinden)
Das ist allerdings dämlich. Nicht zuletzt deshalb, weil alles im Cache Verzeichnis gelöscht wird, wenn man den CMS Zwischenspeicher löscht.
Da die Stylesheets mit dem {stylesheet} Tag ja bisher immer mit der Datei stylesheet.php im root des CMS verlinkt wurden (die dann die entsprechenden Styleheets aus der DB ausgelesen hat) fiel das nie auf.
Bei dem neuen Tag {cms_stylesheet} ist man gezwungen, absolute Pfade anzugeben.
D.h. entweder verwendest Du anstatt background:url(uploads/images...) die komplette URL (das, was in der config.php als $config['root_url'] angegeben ist): background:url(http://deineDomain/uploads/images/...)
Oder du machst von der Funktion gebrauch, mit der die Stylesheets bevor sie statisch ausgelagert werden nochmal von der smarty-Engine verarbeitet werden. Da das automatisch geschieht, brauchst Du also die URL zu den Bildern nur folgendermaßen anzugeben:
background: url([[root_url]]/uploads/images/...)
Oder aber, wenn die Seite fertig ist, erstellst Du einfach selber statische CSS Dateien im Uploads-Verzeichnis und verlinkst in den Stylesheets selber nur noch mit url(images/...).
Im Template selbst verlinkst Du dann ohne {cms_stylesheet} tag direkt auf die Dateien.
Ich persönlich erstelle im Uploads-Verzeichnis immer ein Verzeichnis "Template".
Und dort kommen dann die Verzeichnisse "css", "images" und "js" rein.
Dann werden die Bilder im Stylesheet nur noch mit url(../images/...) verlinkt.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#3 07. Januar 2011 06:56
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Falsche Pfadangaben von Grafiken
Der touchfastcss Tag hat eine Option, um aus relativen Pfaden absolute zu machen und hat auch sonst ein paar interessante Optionen, die cms_stylesheet nicht hat
Offline
#4 07. Januar 2011 18:21
- Pulli
- probiert CMS/ms aus
- Registriert: 21. November 2010
- Beiträge: 83
- Webseite
Re: [GELÖST] Falsche Pfadangaben von Grafiken
Oder du machst von der Funktion gebrauch, mit der die Stylesheets bevor sie statisch ausgelagert werden nochmal von der smarty-Engine verarbeitet werden. Da das automatisch geschieht, brauchst Du also die URL zu den Bildern nur folgendermaßen anzugeben: background: url([[root_url]]/uploads/images/...)
super, danke. damit klappt es wie gewünscht. man lernt halt nie aus...
Offline
Seiten: 1