Peter: Grafiken mit variablem Pfad in CSS-Definitionen

Hallo und fröhliche Weihnachten!

Ich suche gerade nach einer eleganten Variante, um einen Standard-Ordner für eingefügte (Hintergrund)Bilder in CSS zu definieren.

Füge (vom prinzip her) innerhalb vom <html>-Teil die Bilder per JS ein, also:
<script language="javascript">document.write('<img src="', relBildPfad,'bildname.jpg">');</script>

so kann ich die BildPfad-Var einmalig (z.B. dynamisch per PHP) am Anfang definieren. Das würde ich vom Prinzip her gerne auch für die Hintergrundbilder in CSS-Definitionen machen. Kennt jemand eine schöne Variante?

Danke!

Viele Grüße,
Peter

  1. Ich suche gerade nach einer eleganten Variante, um einen Standard-Ordner für eingefügte (Hintergrund)Bilder in CSS zu definieren.

    Füge (vom prinzip her) innerhalb vom <html>-Teil die Bilder per JS ein, also:
    <script language="javascript">document.write('<img src="', relBildPfad,'bildname.jpg">');</script>

    so kann ich die BildPfad-Var einmalig (z.B. dynamisch per PHP) am Anfang definieren. Das würde ich vom Prinzip her gerne auch für die Hintergrundbilder in CSS-Definitionen machen. Kennt jemand eine schöne Variante?

    In CSS brauchst du irgend einen Pfad in der URI.
    Du kannst diesen Pfad so kurz als möglich notieren und serverseitig mittels url_rewrite intern umschreiben.
    Dies wäre die Variante, welche Clientseitig am wenigsten zu Komplikationen führt.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Moin Beat,

      In CSS brauchst du irgend einen Pfad in der URI.
      Du kannst diesen Pfad so kurz als möglich notieren und serverseitig mittels url_rewrite intern umschreiben.

      Besten Dank für die Antwort - Du meinst mit der Apache Rewrite-Engine? Das würde natürlich (mal davon ab das ich das noch nicht gemacht habe, aber daran solls nicht scheitern...) prinzipiell gehen - wenn ich das richtig sehe fehlt aber für meine Zwecke die Dynamik (sonst könnt ich ja mein Problem auch schon mit einem "Replace" über alle betreffenen Dateien lösen). (Fiktives) Beispiel:

      Ich habe n verschiedene Seiten, die sich nur durch die eingebundenen Grafiken unterscheiden. Wenn ich nun die (jeweils gleich beanannten) Grafiken in verschieden Unterverzeichnisse packe, möchte ich eine übergebene Variable mittels PHP in die Datei schreiben um dann auf eins dieser Verzeichnisse zuzugreifen.
      Das geht im html-Teil mit meinem JS-Konstrukt ja auch problemlos, indem ich einmal doe var relBildPfad belege - funzt aber in den CSS-Hintergrundgrafik-Definitionen nicht.

      Ideen?

      DANKE!

      Grüße,
      Peter

      1. In CSS brauchst du irgend einen Pfad in der URI.
        Du kannst diesen Pfad so kurz als möglich notieren und serverseitig mittels url_rewrite intern umschreiben.
        Besten Dank für die Antwort - Du meinst mit der Apache Rewrite-Engine? Das würde natürlich (mal davon ab das ich das noch nicht gemacht habe, aber daran solls nicht scheitern...) prinzipiell gehen - wenn ich das richtig sehe fehlt aber für meine Zwecke die Dynamik (sonst könnt ich ja mein Problem auch schon mit einem "Replace" über alle betreffenen Dateien lösen). (Fiktives) Beispiel:

        Ich habe n verschiedene Seiten, die sich nur durch die eingebundenen Grafiken unterscheiden. Wenn ich nun die (jeweils gleich beanannten) Grafiken in verschieden Unterverzeichnisse packe, möchte ich eine übergebene Variable mittels PHP in die Datei schreiben um dann auf eins dieser Verzeichnisse zuzugreifen.

        Dann ist es das beste, wenn du die CSS-Datei, welche diese Grafiken Die URI verwendet, aus dem gleichen Verzeichnisstamm lädst.
        Die URI der CSS-Datei bildet die Wurzel für relative Pfade.
        http://www.w3.org/TR/REC-CSS1/#url
        und
        http://www.w3.org/TR/CSS2/syndata.html#uri

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Moin,

          Dann ist es das beste, wenn du die CSS-Datei, welche diese Grafiken Die URI verwendet, aus dem gleichen Verzeichnisstamm lädst.

          Oh Mann. Ein klasse Beispiel für "nicht aufs naheliegendste kommen". Besten Dank für diese einfache & elegante Lösung ;-)  - und ein dickes Sorry für's nicht selber drauf kommen... *kopfschüttel*

          Wobei ein kleiner Schönheitsfehler bleibt: Ich brauche Kopien der CSS-Dateien in jedem Unterverzeichnis. Bei n = 5 kein Thema, bei n = 100 schon eher nervig... aber für's erste mach' ich's mal so, da n<100.

          Grüße,
          Peter

          1. Dann ist es das beste, wenn du die CSS-Datei, welche diese Grafiken Die URI verwendet, aus dem gleichen Verzeichnisstamm lädst.

            Oh Mann. Ein klasse Beispiel für "nicht aufs naheliegendste kommen". Besten Dank für diese einfache & elegante Lösung ;-)  - und ein dickes Sorry für's nicht selber drauf kommen... *kopfschüttel*

            Wobei ein kleiner Schönheitsfehler bleibt: Ich brauche Kopien der CSS-Dateien in jedem Unterverzeichnis. Bei n = 5 kein Thema, bei n = 100 schon eher nervig... aber für's erste mach' ich's mal so, da n<100.

            Brauchst du nicht.
            Nur der Client muss verschiedene URIs sehen. Du aber kannst die URIs serverseitig _intern_ auf ein einziges CSS lenken.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Hi,

              Nur der Client muss verschiedene URIs sehen.

              Was dann auch dazu führt, daß der Client das CSS x mal runterladen muß.

              Sinnvoller wäre m.E., server-relative Adressierung zu benutzen.

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              O o ostern ...
              Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
              1. Nur der Client muss verschiedene URIs sehen.

                Was dann auch dazu führt, daß der Client das CSS x mal runterladen muß.

                Sinnvoller wäre m.E., server-relative Adressierung zu benutzen.

                Wie willst du damit der ursprünglichen Absicht gerecht werden?

                mfg Beat

                --
                ><o(((°>           ><o(((°>
                   <°)))o><                     ><o(((°>o
                Der Valigator leibt diese Fische
  2. Moin!

    Ich suche gerade nach einer eleganten Variante, um einen Standard-Ordner für eingefügte (Hintergrund)Bilder in CSS zu definieren.

    Füge (vom prinzip her) innerhalb vom <html>-Teil die Bilder per JS ein, also:
    <script language="javascript">document.write('<img src="', relBildPfad,'bildname.jpg">');</script>

    so kann ich die BildPfad-Var einmalig (z.B. dynamisch per PHP) am Anfang definieren. Das würde ich vom Prinzip her gerne auch für die Hintergrundbilder in CSS-Definitionen machen.

    WENN du schon PHP hast, warum zum Henker nutzt du das nicht, um die Bildpfade damit auszugeben, warum noch extra Javascript?

    Und was spricht gegen die absolut naheliegende Variante, den Pfadnamen zum Bild mit einem Slash zu beginnen und den kompletten Pfad anzugeben? Diese Info ist auf allen Seiten deiner Domain konstant, benötigt also keinerlei PHP oder Javascript.

    Dasselbe Prinzip gilt für CSS.

    - Sven Rautenberg