2013-04-19 4 views
7

Wie strukturieren Sie Flasche App mit angular.js Front-End? Was ist die beste Vorgehensweise? Sollte ich Webserver wie ngnix verwenden, um statische Dateien zu hosten, auch wenn ich an der Entwicklung arbeite?Struktur einer Flasche mit einem angular.js

@app.route('/') 
def index(): 
    return make_response(open('static/index.html').read()) 

oder

@app.route('/') 
def index(): 
    return send_from_directory('static', 'index.html') 

Aber es gibt ein Problem, wo ich js Dateien nicht ohne‘../static zeigen kann:

Mit Kolben standardmäßig kann ich index.html unten mögen serve ' Präfix. Ich will nur Angularjs und alle anderen zeigen, wie:

<script src="lib/angular/angular.js"></script> 

nicht

<script src="../static/lib/angular/angular.js"></script> 

Kann ich alle statischen Dateipräfix in Kolben ändern? Oder gibt es einen guten Weg, dieses Problem zu lösen?

Danke.

+0

möglich Duplikat [Typisch Angularjs Workflow und Projektstruktur (mit Python Flask)] (http://stackoverflow.com/questions/11522151/typical -angular-js-workflow-und-projekt-struktur-mit-python-flask) –

Antwort

4

Wenn Sie wirklich wollen, können Sie:

app = Flask(__name__, static_url_path='') 

Obwohl ich würde nur die absolute URL:

/static/lib/angular/angular.js 
+0

Mit angular.js denke ich "app = Flask (__ name__, static_url_path = '')" ist gut, weil "/ lib" besser geeignet ist als "/ static/lib" in der Sicht der Front-End-Entwickler. – ccoroom

+0

@ccoroom: Wie gehst du die statischen Dateien hosten? – Blender

+0

Ich habe noch nicht viel Ahnung. Dies ist nur eine Entwicklungsumgebung. Aber ich glaube, der seltsame Pfad beginnt mit '/ statisch'. Meine HTML-Dateien leben bereits im Ordner? – ccoroom

3

Ich denke, dass Best Practices Ihren Webserver zu lassen wäre dienen all Ihre statischen Inhalte (angularjs, andere js-Dateien, html, css, Bilder usw.).

Und dann verwenden Sie eine Art Konvention (ich gehe gerne mit dem '/ api' Pfad) zu dienen und Daten zu und von Ihrem Flaschenserver zu erhalten.

Zum Beispiel in Ihrer Apache-Konfiguration:

<VirtualHost *:80> 
    DocumentRoot /path/to/static/files 
    WSGIScriptAlias /api /path/to/flask/flask.wsgi 
    ... 
</VirtualHost> 
+0

Ja, ich stimme zu. Hier ist ein Schnipsel, den ich mit nginx verwende: location /static { autoindex on; alias /path/to/directory/static; } jdsantiagojr