Pyramide:Holen Sie sich Anwendung absolute url
Frage
Gibt es eine Möglichkeit zu bekommen Pyramide absolute Anwendungs-url in der main () - Funktion?Ich möchte hinzufügen, dass es in den globalen Einstellungen, so dass es genannt werden könnte, wo jeder(in der Vorlagen-und js-Dateien).In pyramid-Dokumente gibt es einige Funktionen, die helfen würden, aber alle von Ihnen benötigen ein Wunsch-Objekt und rufen in einer Ansicht.Vielen Dank.
Lösung
Pyramide (wie die meisten WSGI-Anwendungen) kann montiert werden auf jeder domain-und url-Präfix.Somit ist der Einsatz selbst nicht wirklich wissen, welche urls es ist verantwortlich für es sei denn, Sie code in Ihre Anwendung spezifisch (eine INI-Einstellung, für Beispiel).
Dies ist der Grund, warum Anfrage.application_url existiert...da die application_url anders sein könnte pro Anforderung basierend auf wie viele unterschiedliche domains und url-Präfixe, die Sie haben, sind proxyanforderungen für Ihre Anwendung.
Andere Tipps
Bekomme ich nur die route für meine index-route "home", in meinem Fall:
Ich habe diese in meinem main-wrapper mako-Vorlage so, dass alle meine JS-Aufrufe verweisen können, es zu bauen eine richtige Pfad für ajax-calls/etc
<script type="text/javascript" charset="utf-8">
<%
app_url = request.route_url('home').rstrip('/')
%>
APP_URL = '${app_url}';
</script>