2012-11-03 10 views
5

Ich benutze AppFog PaaS System für ein paar Tage, und ich liebe es, Es ist wahrscheinlich das beste PaaS-System, das ich getestet habe (ich habe verwendet (3 andere zuvor), aber keine Informationen darüber gefunden, wie man statischen Inhalt mit dem Webserver im Frontend (Apache https oder nginx) bereitstellen kann. Ich bin mir nicht sicher, welcher Server verwendet wird.Wie man statischen Inhalt mit Apache in AppFog (WSGI Python App)

Meine App ist eine Python WSGI mit CherryPy und funktioniert perfekt in AppFog, aber ich möchte nicht CherryPy statische Inhalte zu liefern, denke ich, dass Apache httpd oder Nginx eine bessere Option dafür ist.

+0

Ich denke, dass ich falsch liege und AppFog nginx als Proxy-Server anstelle Apache für Python-Apps nutzen, Wie auch immer, ich muss immer noch den direkten Zugriff auf statische Inhalte konfigurieren. – Roberto

+0

Wenn meine Antwort hilfreich war, stellen Sie sie bitte als Ihre Lösung ein. Vielen Dank! –

Antwort

0

Bearbeiten Sie Ihre nginx.conf-Datei. Im Bereich Server geben Sie ...

ein

Bilder, JavaScript und CSS sind Ordner in Ihrem Dokumentstammordner. Aktualisiere alle deine URLs entsprechend.

+1

Danke Andrew, aber soweit ich weiß AppFog erlaubt keinen Zugriff auf http.conf Apache-Datei :-( – Roberto

+0

Aktualisierte Antwort für Nginx-Server. –

+0

Hallo Andrew wie ich bereits erwähnt habe ich keinen Zugriff auf Server-Konfigurationsdatei, meine App läuft in AppFog und ich kann nur Dateien innerhalb meiner App ändern. Ich habe ein Ticket in Appfog geöffnet, um sicher zu sein, ob diese Funktion möglich ist oder nicht (In anderen PaaS-Systemen als OpenShift ist das möglich) Ihre Antwort – Roberto

2

Mit Ryans Unterstützung kann ich endlich statische Dateien laden! Hier sind die Schritte:

  1. ein ‚statisches‘ Verzeichnis im Projektstamm Erstellt - hier alle statischen Dateien Ausführen den collectstatic Befehls gesammelt werden.

  2. Bearbeiten Sie die settings.py Datei:

    STATIC_ROOT = os.path.join (os.path.abspath (os.path.dirname (Datei)), '../static') # Kann sich ändern, je nachdem wo sich die Datei settings.py befindet!

    STATIC_URL = '/ static /'

  3. Add in urlpatterns Variable in urls.py Datei folgende Zeile:

    url (r '^ statisch/(P *) $?.', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),

  4. Zuletzt führen Sie den Befehl collectstatic auf Ihrem lokalen Rechner aus. Dadurch werden alle statischen Dateien aus den Apps kopieren Sie verwenden:

    Python manage.py collectstatic

Das ist es. Push AF :)

Nachteil: Need collectstatic jedes Mal, wenn wir eine neue statische Datei laufen ...

+1

Hallo @giga, die ursprüngliche Frage ist, wie man statischen Inhalt von AppFog Frontend (Apache httpd oder Nginx), nicht von Python App dienen. Eigentlich habe ich bereits statische Dateien aus meiner Python-App mit CherryPy (ich sagte das in meinem ursprünglichen Beitrag), aber Python-Programm (oder Java oder was auch immer) sind nicht so effizient dienen statische Dateien als reife Webserver dienen. – Roberto

+0

Hoppla. Ich hatte Probleme mit der Statik von Python an erster Stelle ...: P – giga

+0

Also in AppFog konnte man nicht ändern ngix.conf? –