3 Stimmen

Ausführen einer qooxdoo-Quellversion von einem Webserver

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.

4voto

Tobi Oetiker Punkte 4901

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

3voto

Fabian Jakobs Punkte 27936

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X