2017-02-27 1 views

Répondre

2

Réponse courte: il suffit de servir quelques html pour les urls que vous aimez et de mettre votre application angulaire dans le dossier statique. Pyramid ne prétend pas contrôler vos ressources statiques (telles que javascript/angular/etc), c'est à vous de décider. Longue réponse: Supposons que vous ayez la structure suivante où "app.js" est l'application angulaire compilée (ou non, cela n'a pas d'importance) ... supposons également que vos dépendances angulaires sont présentes et que tout est accessible. Vous devez mettre à jour cela mais vous envisagez de construire votre javascript, etc.

myapp/ 
    - static/ 
    - css/ 
     - main.css 
    - js/ 
     - app.js 
    - media/ 
    - views/ 
    - default.py 
    - templates/ 
    - spa.jinja2 

Disons que votre app.js a alors quelque chose pour amorcer votre application au DOM.

var appElement = document.getElementById('app') 
// render angular app on appElement 

Vous ai alors obtenu votre seule page html app typique dans un modèle spa.jinja2. Notez comment il référence votre js/css à partir du dossier statique.

<html> 
    <head> 
     <link type="stylesheet" src="{{ request.static_url('myapp:static/css/main.css') }}"> 
    </head> 
    <body> 
     <div id="app"></div> 
     <script src="{{ request.static_url('myapp:static/js/app.js') }}"></script> 
    </body> 
</html> 

Maintenant, vous ajoutez une route/vue qui ne fera que servir le code HTML.

config.add_route('home', '/') 

@view_config(route_name='home', renderer='spa.jinja2') 
def home_view(request): 
    return {} 

Ceci est l'explication de barebones à partir de laquelle, espérons-vous, vous pouvez voir comment les pièces s'emboîtent pour construire une application.

+0

Merci Michael, je vais mettre en place ce que vous avez dit, je reviendrai à vous si cela fonctionne, merci encore :) –