[PHP] Variable CSS-Dateien

Dieses Thema im Forum "Webentwicklung" wurde erstellt von powernator, 23. Juni 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 23. Juni 2010
    Variable CSS-Dateien

    Hallo

    Ich arbeite zur Zeit an einem neuen Projekt und benutze hier auch mod_rewrite. Damit das layout-technisch keine Probleme macht, vergebe ich konkrete URLs bei den Bildern und benutze dazu eine Variable, die ich in PHP definiert habe.

    Das sieht im Template dann zum Beispiel so aus
    Code:
    <img src="<?php print $url; ?>images/bild.jpeg" alt="" />
    Jetzt habe ich das Problem, dass auch meine CSS-Datei mit Bildern arbeitet, erst hatte ich sie in der Datei, da hat es geklappt, aber es muss doch auch als extra Datei gehen.

    Aktuell ist der Stand so, dass ich eine xyz.css aufrufe und über mod_rewrite die Anfrage an eine css.php?file=xyz weiterleite, die dann den CSS-Code ausgibt. Im Browser funktioniert das auch problemlos - aber das Template scheint die gezinkte CSS-Datei nicht anzunehmen ...

    Wie kann man das elegant lösen? Ich habe bisher noch nicht so viel mit mod_rewrite gearbeitet, muss ich gestehen.

    Grüße
    pow
     
  2. 23. Juni 2010
    AW: Variable CSS-Dateien

    Wichtig ist, dass du den Header mitschickst:

    PHP:
    header ( 'Content-Type: text/css' );
    Was dein vorhaben angeht, wäre es aber wohl schlauer, wenn du
    die Pfade in der CSS relativ angibst. Dann brauchst du den Pfad nur
    bei der Einbindung der CSS datei angeben, den Rest, sprich
    die auflösung der Files dann innerhalb der CSS übernimmt der Browser
    relativ zum Pfad der CSS.
     
  3. 23. Juni 2010
    AW: Variable CSS-Dateien

    Das wars, danke

    Verstehe leider nicht genau, was du da meinst. Problem ist, dass die URLs unterschiedlich aussehen, teilweise xyz/, teilweise xyz/1235/hallo, wenn also der Pfad in der CSS relativ ist, müsste er ja einmal ../ und einmal ../../../ sein, oder?
     
  4. 23. Juni 2010
    AW: Variable CSS-Dateien

    Die URL der HTML file, die das CSS reinlädt ist unwichtig.
    Wenn das CSS immer an der selbe URL liegt, dann sind auch die
    relativen pfade immer die selben, egal ob du das CSS mit einer HTML
    Datei von xcyz/text.html oder xczys/subx/text.html reinlädst.

    Sprich:

    Code:
    a/b/c/index.html beinhaltet: <link rel="stylesheet" type="text/css" href="/templates/css/style.css" />
    
    a/b/c/d/e/index.html beihaltet: <link rel="stylesheet" type="text/css" href="/templates/css/style.css" />
    Hier: Pfade in der CSS sind immer relativ zu /templates/css/.

    Wenn die CSS aber tatsächlich immer unterschiedliche URLs haben (Was nicht so optimal ist wg. caching), dann sind auch, wie du schon sagst, die relativen Pfade in der CSS unterschiedlich.
     
  5. 23. Juni 2010
    AW: Variable CSS-Dateien

    Ah sehr gut, habe mich um ehrlich zu sein noch nie wirklich mit den Pfaden beschäftigt ><

    Jetzt noch eine Frage: lokal teste ich es ja in einem Unterordner, während es auf dem Space nachher im HTML-rootdir (ich nenn es einfach mal so) sein soll.

    D.h. der relative Pfad lokal ist /projektXYZ/main.css und nachher /main.css. Gibt es einen Weg, dass ich beim Upload nicht immer das projektXYZ/ wegmachen muss von den Links?
     
  6. 23. Juni 2010
    AW: Variable CSS-Dateien

    am sichersten ist, wenn du auf dem server einen absoluten http-pfad ermittelst.

    ich verwende dazu folgenden code: (auszug)
    PHP:
    define ( 'SSL' , !empty( $_SERVER [ 'HTTPS' ]));
        
    //http-root
    $http_root  'http'  . ( SSL  's'  '' ) .  ":// { $_SERVER [ 'HTTP_HOST' ]} dirname ( $_SERVER [ 'PHP_SELF' ]);
    if(
    substr ( $http_root , - 1 ) !==  '/' )
        
    $http_root  .=  '/' ;
        
    define ( 'HTTP_ROOT' $http_root );

    unset(
    $http_root );
    und dann im html-file:
    PHP:
    <link rel="stylesheet" type="text/css" href="<?php  print  HTTP_ROOT ?>pfad/zu/main.css" />
    ergibt:
    HTML:
    <link rel="stylesheet" type="text/css" href="http://domain.tld/projectXY/pfad/zu/main.css" />
     
  7. 23. Juni 2010
    AW: Variable CSS-Dateien

    PHP:
    define ( 'NOW' $_SERVER [ 'REQUEST_TIME' ] ?:  time ());
    Ist das korrekter PHP-Code? Da wird mir ein Fehler ausgegeben und habe es so auch noch nie gesehen
     
  8. 23. Juni 2010
    AW: Variable CSS-Dateien

    ja das ist php5.3 (habs rauseditiert und nur das wichtigste drinne gelassen)

    der operator ?: steht für (WENN UNGLEICH FALSE DANN DAS) ?: (ANSONSTEN DAS)
    PHP:
    $var1  1 ;
    $var2  2 ;
    $var3  $var1  $var1  $var2 //php <= 5.2 => 1
    $var3  $var1  ?:  $var2 //php >= 5.3 => 1
     
  9. 24. Juni 2010
    AW: Variable CSS-Dateien

    Ja habe ich mir gedacht - ok danke soweit für die Hilfe, habt BWs bekommen
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.