Ich versuche, die Quellversion meiner qooxdoo-Anwendung auf einem Webserver auszuführen. Die Anwendung funktioniert gut, wenn sie aus dem Dateisystem geladen wird, aber sie wird nicht geladen, wenn sie von einem Webserver gestartet wird.
Antworten
Zu viele Anzeigen?Nehmen wir an, Sie haben das qooxdoo-Framework installiert: /usr/pack/qooxdoo-1.0/frontend
und Ihre Bewerbung in /home/user/myproject
. Fügen Sie nun einen symbolischen Link in das Anwendungsverzeichnis wie folgt ein:
ln -s ../../../../../../../usr/pack/qooxdoo-1.0/frontend qooxdoo
En el config.json
Datei setzen die QOOXDOO_PATH
a qooxdoo
Auf diese Weise sollten alle Verweise auf die qooxdoo-Quellen funktionieren, unabhängig von der scheinbaren Tiefe der lokalen Wurzel. Für den Webserver müssen Sie eventuell FollowSymlink oder etwas ähnliches erlauben ...
PS dieser Ansatz hat den netten Nebeneffekt, dass Ihre Anwendung auch funktioniert, wenn sie unter Windows über \\server\user\myproject\source\index.html
Die Quellversion wird die meiste Zeit über das Dateisystem ausgeführt (d.h. sie wird mit dem file:-Protokoll in Ihrem Browser geöffnet). Das Quellskript verweist lediglich auf den Quellcode und die Ressourcen mit relativen Pfaden, wo immer sie sich in Ihrem Dateisystem befinden. Dies eignet sich in der Regel nicht gut für die Ausführung von einem Webserver. Selbst wenn Sie das Quellverzeichnis Ihrer Anwendung in einen für den Server zugänglichen Pfad einbinden (irgendwo unterhalb von DocumentRoot oder einem der definierten Aliase), besteht die Möglichkeit, dass das Quellskript auf Dateien verweist, die außerhalb des Dokumentbereichs des Webservers liegen.
Wenn Sie also in die Situation kommen, dass Sie eine Quellversion Ihrer Anwendung von einem Webserver aus ausführen müssen, beachten Sie die folgenden Hinweise:
-
Machen Sie das Quellverzeichnis Ihrer Anwendung für den Webserver zugänglich, so dass es über eine gültige URL erreichbar ist wie
http://your.web.server/path/to/yourapp/source/index.html
. -
Stellen Sie sicher, dass alle Komponenten, die von Ihrer Anwendung verwendet werden, wie das qooxdoo SDK selbst, und jede zusätzliche qooxdoo Bibliothek oder jeder Beitrag, den Sie verwenden, gleichermaßen vom Webserver zugänglich sind.
- Im Falle von Beiträgen, die über das Pseudoprotokoll contrib:// in Ihrer Anwendungskonfiguration referenziert werden, werden diese heruntergeladen und im Download-Cache-Verzeichnis (config key cache/downloads) gespeichert. Stellen Sie also sicher, dass dieser Pfad in Ihren Überlegungen enthalten ist.
-
Stellen Sie sicher, dass die relativen Pfade auf dem Webserver mit denen auf Ihrem Dateisystem übereinstimmen, z. B. wenn Ihre Anwendung auf dem Dateisystem unter
/a/b/A/myapp
und Ihre qooxdoo-Installation befindet sich unter/a/b/Z/qooxdoo-sdk
und der Serverpfad zu Ihrer Anwendung lautet/web/apps/myapp
dann stellen Sie sicher, dass der Serverpfad zu qooxdoo lautet/web/Z/qooxdoo-sdk
so dass relative Verweise wie../Z/qooxdoo-sdk will
unter dem Webserver arbeiten.
Eine einfache Möglichkeit, dies zu erreichen, besteht darin, das DocumentRoot oder einen Alias auf ein Verzeichnis in Ihrem Dateisystem abzubilden, das ein gemeinsamer Elternteil für alle beteiligten qooxdoo-Komponenten Ihrer Anwendung ist.