Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#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">&nbsp;</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 wink

http://dev.cmsmadesimple.org/projects/touchfastcss

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

NaN schrieb:

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

Offline