2016-11-09 4 views
2

Je veux servir des fichiers statiques dans les pyramides via request.static_url ('some_file'). En raison de plusieurs services, mes modèles ont des lignes comme:Servir des fichiers statiques via https dans la pyramide

<script type="text/javascript" src="${request.static_url('dbas:static/first')}"></script> 
<script type="text/javascript" src="${request.static_url('websocket:static/second')}"></script> 

Mais, malheureusement, seule la méthode static_url() fournit des liens avec http comme url_scheme, mais je veux https. Comment puis-je atteindre cet objectif?

Merci!

+0

Vérifiez cette question SO http://stackoverflow.com/questions/39033106/pyramid- debug-toolbar-serving-statique-contenu-sur-http-au lieu-de-https –

+0

Merci, mais je veux maintenant chaque appel via https: \ –

Répondre

1

facile, il vous suffit de spécifier le système que vous voulez, par exemple:

<script type="text/javascript" src="${request.static_url('dbas:static/first', _scheme='https')}"></script> 

Remarque: Vous pouvez également spécifier _host ou _port pour définir l'URL. Pour plus d'informations http://docs.pylonsproject.org/projects/pyramid/en/latest/api/request.html#pyramid.request.Request.route_url

+0

Mais en développement, j'utilise http et en production https. –

+1

Vous pouvez passer une variable d'environnement définie dans votre setup.ini (par exemple, development.ini et production.ini), comme myproject.scheme = http et passer au template pour le rendre dynamique comme (settings.get ('myproject.scheme ',' http ')) –

2

Vous pouvez ajouter à votre url_scheme param fichier de configuration (séparés par l'environnement) comme ça:

[server:main] 
use = egg:waitress#main 
host = 0.0.0.0 
port = 6500 
url_scheme = https 
+0

Je ne sais pas pourquoi cela est downvoted, c'est correct, par les docs wsgi ici: https://wsgi.readthedocs.io/en/latest/definitions.html#wsgi-environ-keys –

+0

Oui @ Jonno_FTW, je ne sais pas pourquoi il est downvoted aussi. –