theme_plus 4.0.0, Contao 3.1.1: URLs im CSS -> ../../files/files/...

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Spooky
    Community-Moderator
    Wandelndes Contao-Lexikon
    • 12.04.2012
    • 38811

    #1

    theme_plus 4.0.0, Contao 3.1.1: URLs im CSS -> ../../files/files/...

    Damit die relativen url('...') Pfadangaben in den CSS files richtig ausgegeben werden (so wie Contao das ansonsten auch machen würde, ohne theme_pluss), muss ich in theme_plus ja den CSS Rewrite Filter einsetzen. Allerdings generiert mir dieser momentan eine Falsche URL. Angenommen ich habe bspw. folgende Dateien:
    Code:
    files/foo/css/foo.css
    files/foo/images/foo.png
    In foo.css würde ich daher zB url('../images/foo.png') schreiben. CSS Rewrite macht dies allerdings zu url('../../files/files/foo/images/foo.png') anstatt einfach nur url('../../files/foo/images/foo.png').

    Warum passiert das? Muss ich im CSS die relativen Pfadangaben doch anders machen?


    // edit: Contao 3.1.1, theme_plus 4.0.0 stable
    Zuletzt geändert von Spooky; 14.07.2013, 13:36. Grund: Versionen
    » sponsor me via GitHub or Revolut
  • bizon
    Alter Contao-Hase
    • 16.06.2010
    • 1128

    #2
    Wenn ich dich richtig verstanden habe, hast du in ThemePlus, bei den Stylesheets, den Assetic Filter CSS-Rewrite ausgewählt.

    Der nächste Schritt wäre dann, den Assetic Filter für Stylesheets (oder evtl. einen Filter Chain) im Seitenlayout zu aktivieren. Dann sollte der rewrite klappen.

    Kommentar

    • Spooky
      Community-Moderator
      Wandelndes Contao-Lexikon
      • 12.04.2012
      • 38811

      #3
      Zitat von bizon Beitrag anzeigen
      Wenn ich dich richtig verstanden habe, hast du in ThemePlus, bei den Stylesheets, den Assetic Filter CSS-Rewrite ausgewählt.

      Der nächste Schritt wäre dann, den Assetic Filter für Stylesheets (oder evtl. einen Filter Chain) im Seitenlayout zu aktivieren. Dann sollte der rewrite klappen.
      Der CSS Rewrite Filter ist sowohl bei den einzelnen CSS Dateien selbst, als auch im Seiten Layout aktiviert. Das Problem ist ja auch nicht, dass das CSS Rewrite nicht greift, sondern dass der Output des CSS Rewrite falsch ist. Aus ../images/foo.png wird eben ../../files/files/foo/images/foo.png.

      Wo ist da eigentlich der Unterschied? Hat das zuweisen eines Filters im Seitenlayout eine andere Auswirkung als bei den einzelnen Dateien?



      Übrigens, wenn ich im Backend eingelogged bin, dann sieht die URL so aus: ../../../files/foo/images/foo.png (über's proxy script), was auch wiederum falsch ist. Zwar fehlt hier das doppelte "files", dafür fehlt auch wiederum ein zusätzliches "../" (da sich das CSS file bzw. das proxy script ja in system/modules/theme-plus/web/proxy.php befindet und man von dort aus eben mit ../../../../ in den root kommt und dann weiter zu files).
      » sponsor me via GitHub or Revolut

      Kommentar

      • Spooky
        Community-Moderator
        Wandelndes Contao-Lexikon
        • 12.04.2012
        • 38811

        #4
        Ah, das brachte mich nun auf die Lösung. Der Filter wird tatsächlich zwei mal angewandt, wenn er in der Datei und im Seitenlayout aktiv ist. Wär ja eigentlich logisch gewesen . Und dadurch ist dann auch der Output falsch. Habe es nun bei den einzelnen CSS Dateien deaktiviert und den Filter nur mehr im Seitenlayout aktiv, jetzt funktioniert es.
        » sponsor me via GitHub or Revolut

        Kommentar

        • bizon
          Alter Contao-Hase
          • 16.06.2010
          • 1128

          #5
          Tut mir leid, dann kann ich nicht weiterhelfen. Dass die Nutzung von Assetic-Filtern im Gegensatz zu früheren ThemePlus Versionen jetzt nötig ist, ist für mich auch neu und ich steig, um ehrlich zu sein, auch noch nicht durch. Hatte aber das gleiche Problem mit den falschen Pfaden.

          Nach einigen Recherchen im Forum bin ich wie folgt vorgegeangen.

          neueste Themeplus von github geholt und installiert
          Backendmodule: einen Filter CSS-Rewrite angelegt.
          beim Anlegen der Stylesheets den Assetic-Filter ausgewählt
          und auch im Seitenlayout aktiviert
          in den CSS-Dateien wiklich relative Pfade eingetragen
          Systemwartung durchgeführt

          EDIT: hatte nicht gesehen, dass du schon die Lösung gefunden hast. Seltsam ist aber, dass ich den Filter wie oben beschrieben, zweimal markiere und es trotzfem funktioniert.

          EDIT2: Hab den Filter bei den Stylesheets jetzt auch deaktiviert und es klappt ebenso.
          Zuletzt geändert von bizon; 14.07.2013, 14:58.

          Kommentar

          • Spooky
            Community-Moderator
            Wandelndes Contao-Lexikon
            • 12.04.2012
            • 38811

            #6
            Ja, wie gesagt, wenn ich CSS Rewrite sowohl bei den Dateien, als auch im Seitenlayout aktiviere, ist der Output auf jeden Fall falsch.
            » sponsor me via GitHub or Revolut

            Kommentar

            • djo
              Contao-Nutzer
              • 30.01.2011
              • 210

              #7
              Hallo zusammen,


              ich habe eine funktionierende Seite mit Stylesheets eingebunden im Seitenlayout (files/ordner/ordner/style.css). Sobald ich theme_plus installiere, kann er keinen Pfad aus dem Stylesheet mehr finden und dabei habe ich noch nichts mit theme_plus konfiguriert. Im Stylesheet sind Pfade angegeben, wie "../img/bild.jpg"

              Ich blicke überhaupt nicht durch, wo da das Problem ist.


              Liebe Grüße,
              Daniel

              Kommentar

              • Spooky
                Community-Moderator
                Wandelndes Contao-Lexikon
                • 12.04.2012
                • 38811

                #8
                Wenn du Theme+ installiert hast, musst du externe Stylesheets auch wirklich über Theme+ einbinden. Ich kann mich nicht mehr genau erinnern, aber ich glaube auch bei mir war es so, dass die von Contao über das Seitenlayout definierten, externen Stylesheets tatsächlich nicht mehr eingebunden wurden.

                // ah, oder machst du es eh über Theme+? Verstehe deine Angabe nicht ganz . Abgesehen vom Rest musst du auf jeden Fall den CSS Rewrite Filter von Assetic verwenden, damit urls im Stylesheet korrekt sind.
                » sponsor me via GitHub or Revolut

                Kommentar

                • djo
                  Contao-Nutzer
                  • 30.01.2011
                  • 210

                  #9
                  Hallo :-)

                  Okay. Ich habe den Filter "CSS_Rewrite" erstellt und für den Style unter files/projektpfad/css/main.css aktiviert und Theme_Plus macht aus meinen CSS-URLs folgendes:

                  ../../../../../../../../files/projektpfad/projektpfad/img/bild.jpg

                  Im Stylesheet steht:

                  background: URL("../projektpfad/img/bild.jpg");

                  Ich sehe da keine Logik und somit erschließt sich mir kein Lösungsansatz. :-)

                  Würde mich sehr freuen, wenn es da einen Tipp gebe, da ich Theme_Plus ultragenial finde.

                  Liebe Grüße,
                  Daniel
                  Zuletzt geändert von djo; 05.08.2013, 17:08.

                  Kommentar

                  • Spooky
                    Community-Moderator
                    Wandelndes Contao-Lexikon
                    • 12.04.2012
                    • 38811

                    #10
                    • Wo bzw. wie wendest du den CSS Rewrite Filter überall an?
                    • Sind die URL Angaben tatsächlich relativ zum CSS file? url("../projektpfad/img/bild.jpg"); sieht mir nicht danach aus. Weil da müsste dann folgende Struktur vorliegend sein:

                      /foo/css.css
                      /projektpfad/img/bild.jpg
                    » sponsor me via GitHub or Revolut

                    Kommentar

                    • djo
                      Contao-Nutzer
                      • 30.01.2011
                      • 210

                      #11
                      Also es sieht wie folgt aus:

                      files/projektpfad/css/main.css
                      files/projektpfad/img/bild.jpg


                      Style über Theme_Plus in alle Seitenlayouts eingebunden.
                      Also mit Theme_Plus die CSS-Datei angewählt, dann auf alle Seitenlayouts und unten den CSS-Rewrite-Filter eingebunden.

                      Hmmmm. Geht Theme_Plus nun vom Contao-Root aus, oder geht es vom Pfad der CSS-Datei aus?
                      Zuletzt geändert von djo; 05.08.2013, 17:14.

                      Kommentar

                      • Spooky
                        Community-Moderator
                        Wandelndes Contao-Lexikon
                        • 12.04.2012
                        • 38811

                        #12
                        Zitat von djo Beitrag anzeigen
                        Also es sieht wie folgt aus:

                        files/projektpfad/css/main.css
                        files/projektpfad/img/bild.jpg
                        Dann muss der Pfad url("../img/bild.jpg"); lauten, nicht url("../projektpfad/img/bild.jpg"); (wäre auch ohne Theme+ so in Contao 3).
                        » sponsor me via GitHub or Revolut

                        Kommentar

                        Lädt...