2013-04-19 16 views
7

Jak skonstruować aplikację kolb z front-endem angular.js? Co to jest najlepsza praktyka? Czy powinienem używać serwera WWW takiego jak ngnix do obsługi statycznych plików, nawet gdy pracuję nad programowaniem?Struktura kolby za pomocą angular.js

Z domyślnie kolby, mogę służyć index.html jak poniżej:

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

lub

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

Ale jest problem, gdzie nie można wskazać pliki js bez”../static ' prefiks. Chcę tylko podkreślić angularjs i wszystkich innych, takich jak:

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

nie

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

Mogę zmienić wszystko statycznego pliku prefiks w kolbie? Czy istnieje dobry sposób na rozwiązanie tego problemu?

Dzięki.

+0

możliwe duplikat [Typowy angularjs obiegu projektu i struktury (Pythona kolbę)] (http://stackoverflow.com/questions/11522151/typical -wysokość-js-workflow-i-struktura-projektu-z-python-kolbą) –

Odpowiedz

4

Jeśli naprawdę chcesz, możesz:

app = Flask(__name__, static_url_path='') 

Chociaż bym po prostu użyć bezwzględny adres URL:

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

Z angular.js, myślę, że "app = Flask (__ name__, static_url_path = '')" jest dobry, ponieważ "/ lib" jest bardziej odpowiedni niż "/ static/lib" w widoku przednich programistów. – ccoroom

+0

@ccoroom: Jak zamierzasz przechowywać pliki statyczne? – Blender

+0

Nie mam jeszcze pomysłu. To tylko ustawienie programistyczne. Ale czuję, że dziwna ścieżka zaczyna się od "/ static". moje pliki html już znajdują się w folderze? – ccoroom

3

myślę, że najlepsze praktyki byłoby pozwolić służyć serwer WWW cała twoja statyczna zawartość (angularjs, inne pliki js, html, css, obrazy, itp.).

Następnie użyj jakiegoś rodzaju konwencji (lubię używać ścieżki '/ api'), aby serwować i odbierać dane do iz serwera butelek.

Na przykład, w konfiguracji apache:

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

Tak, zgadzam się. Oto fragment, którego używam z nginx: location /static { autoindex on; alias /path/to/directory/static; } jdsantiagojr

Powiązane problemy