Ich arbeite in der jetzigen Version viel mit eigenen Webseiten die im user Verzeichnis liegen. Ich würde gerne im Rahmen der Umstellung auf IPS 4 den Inhalt von vielen Webseiten einfach direkt in eine HTMLBox packen ohne in der HTMLBox auf die eigentliche Seite im user Verzeichnis zu verlinken.
Wenn ich jetzt in einer HTMLBox z.B. CSS und Javascript verwenden will, was muss ich da beachten bzw. wie müssen da die Pfadangaben aussehen?
Kann ich die CSS und Javascript Daten in irgendein Verzeichnis unterhalb des symcon Verzeichnisses ablegen oder müssen diese zwingend unterhalb von webfront/user Verzeichnisses liegen?
Wenn ich im user Verzeichnis Links einfüge sehen diese ja z:B. so aus
Alternativ kannst du dir jeweils in /webfront/user einen eigenen Unterordner für deine Projekte machen und die Dateien von dort einbinden. Nall chan hat in seinem aktuellen Fritzbox Project .js Dateien aus dem /webfront/user/fritzbox Verzeichnis eingebunden. Diesen Code kannst du dir also auch als Vorlage nehmen.
Ich überlege gerade bringt es eigentlich irgendeinen Vorteil den HTMLCode direkt in die HTMLBox zu schreiben?
Bisher verlinke ich einfach ins user Verzeichnis z.B. <iframe src=„user/eigenesverzeichnis/seitenname.php“ border=„0“ frameborder=„0“ style= „width: 100%; height: 100%;“/></iframe>
Kann ich das einfach so lassen oder habe ich irgendeinen Vorteil wenn ich den Code direkt in der HTMLBox habe?
Wenn du eh Zeug im /user/ Ordner hast, würde ich es dort lassen.
Ist weniger Inhalt der über IPS geladen wird, somit ist die Zeit, bis das WebFront da ist kürzer. (Der Rest wird dann nämlich erst später geladen…)
Den einzigen Vorteil den ich sehe, man kann dynamisch mit einem IPS-Skript den HTML-Code erzeugen und in einer HTMLBox anzeigen. Hast du eine Seite im /webfront/user Verzeichnis, ginge das zwar auch per Skript, aber „umständlicher“.
Wenn du aber an den Dateien nichts ändern willst, oder nur sehr selten, dann kannst du die Dateien dort lassen. Variablen kannst du ja auch so auslesen oder sonstwas machen (JSON-API).
Meine Seiten sind alle dynamisch und setzten sich aus Variablen aus IPS zusammen die ich über die JSON API hole. Ich vergleiche mal in Ruhe Dein Script mit meiner Seite und schau dann was auf Dauer einfacher ist. Vielen Dank für die Rückmeldung. Wenn ich es aber richtig verstanden habe ist der Weg über den user Ordner wahrscheinlich der bessere für die Performance des Webfronts.
Ich habe das jetzt noch mal im direkten Vergleich ausprobiert.
Option 1:
Die Seite liegt komplett im User Verzeichnis und wird über eine HTMLBox angezeigt. Grafik, CSS und Javascript liegen in Unterordnern. Als Inhalt der Variable wird auf die Seite verwiesen mit <iframe src=„user/neo/covertest.html“ border=„0“ frameborder=„0“ style= „width: 100%; height: 100%;“/></iframe>
Option 2:
Der Inhalt der Seite wird per Script komplett in eine Variable geschrieben. Innerhalb des Codes wird auf Grafik, CSS und Javascript verlinkt. Die Daten liegen unterhalb des webfront Ordners unter user/neo/
Im Code wird z.B. die Grafik verlinkt mit src=„user/neo/images/piconhd/1_0_1_77D8_40A_1_C00000_0_0_0.png“
Die Grafik wird korrekt angezeigt, das Javascript wird richtig verarbeitet und die Transformation durchgeführt. Die Grafik wird exakt nach Vorgaben auf der Seite positioniert.
Ansicht Webfront Option 2:
Es wird zwar die Grafik angezeigt, diese wird jedoch nicht korrekt dargestellt. Die Grafik sitzt oben am Seitenrand und anscheinend wird der Javascript Code nicht verarbeitet.
Der Code ist wie gesagt beide male identisch nur das einmal im User Verzeichnis das andere mal innerhalb der Stringvariable.
So ganz erklären kann ich mir den Unterschied nicht, für mich bedeutet dies aber das ich zur Zeit bei der Lösung bleibe die Seiten komplett unter dem User Verzeichnis abzulegen. Das hat außerdem den Vorteil das ich die Seiten mit Dreamweaver bearbeiten kann was nicht geht wenn ich den Code nur innerhalb eines Scripts von IPS habe.
Hat ansonsten noch jemand Ideen was den Unterschied ausmachen könnte?
Was immer gut hilft, ist dann die Entwicklertools der Browser zu aktivieren (F12?!).
Dann sieht man sofort ob alles geladen wird oder was mit dem JS oder CSS nicht stimmt.
Michael