Quand l'appli Django n'est pas déployée à la racine d'un vhost (ie. example.com/celutz au lieu de example.com/) alors on ajoute à local_settings.py la variable FORCE_SCRIPT_NAME = "/celutz" (source) (en plus de setter STATIC_URL et MEDIA_URL), mais les URLs /altitude/lat/lon/ ne le prennent pas en compte.
Une solution simple consiste à rendre ces URLs relatives, dans panorama/templates/panorama/main.html, ligne 127 :
-$.get("/altitude/" + lat + "/" + lng + "/").done(
+$.get("altitude/" + lat + "/" + lng + "/").done(
Quand l'appli Django n'est pas déployée à la racine d'un vhost (ie. `example.com/celutz` au lieu de `example.com/`) alors on ajoute à `local_settings.py` la variable `FORCE_SCRIPT_NAME = "/celutz"` ([source](https://docs.djangoproject.com/en/1.11/ref/settings/#force-script-name)) (en plus de setter `STATIC_URL` et `MEDIA_URL`), mais les URLs `/altitude/lat/lon/` ne le prennent pas en compte.
Une solution simple consiste à rendre ces URLs relatives, dans `panorama/templates/panorama/main.html`, ligne 127 :
```diff
-$.get("/altitude/" + lat + "/" + lng + "/").done(
+$.get("altitude/" + lat + "/" + lng + "/").done(
```
Mince, c'est aussi le cas pour les requêtes vers /api/. Qui elles sont faites depuis des URLs du type /celutz/pano/view/5, donc « relativiser » les URLs ne suffira pas cette fois...
Bon bah du coup, pour ce qui me concerne, je vais essayer de négocier un vhost dédié avec mon hébergeur, tant pis. ;-)
Mince, c'est aussi le cas pour les requêtes vers `/api/`. Qui elles sont faites depuis des URLs du type `/celutz/pano/view/5`, donc « relativiser » les URLs ne suffira pas cette fois...
Bon bah du coup, pour ce qui me concerne, je vais essayer de négocier un vhost dédié avec mon hébergeur, tant pis. ;-)
Je ne connaissais pas FORCE_SCRIPT_NAME. On pourrait imaginer définir une variable javascript genre "prefix" qui soit par défaut à "/", mais qui prenne la valeur de FORCE_SCRIPT_NAME si définie. Ensuite tous les appels asynchrones peuvent utiliser cette variable.
Si tu veux t'essayer à contribuer, n'hésite pas, je ne pense pas que ce soit très compliqué à implémenter :)
Je ne connaissais pas `FORCE_SCRIPT_NAME`. On pourrait imaginer définir une variable javascript genre "prefix" qui soit par défaut à "/", mais qui prenne la valeur de `FORCE_SCRIPT_NAME` si définie. Ensuite tous les appels asynchrones peuvent utiliser cette variable.
Si tu veux t'essayer à contribuer, n'hésite pas, je ne pense pas que ce soit très compliqué à implémenter :)
Quand l'appli Django n'est pas déployée à la racine d'un vhost (ie.
example.com/celutz
au lieu deexample.com/
) alors on ajoute àlocal_settings.py
la variableFORCE_SCRIPT_NAME = "/celutz"
(source) (en plus de setterSTATIC_URL
etMEDIA_URL
), mais les URLs/altitude/lat/lon/
ne le prennent pas en compte.Une solution simple consiste à rendre ces URLs relatives, dans
panorama/templates/panorama/main.html
, ligne 127 :Mince, c'est aussi le cas pour les requêtes vers
/api/
. Qui elles sont faites depuis des URLs du type/celutz/pano/view/5
, donc « relativiser » les URLs ne suffira pas cette fois...Bon bah du coup, pour ce qui me concerne, je vais essayer de négocier un vhost dédié avec mon hébergeur, tant pis. ;-)
Je ne connaissais pas
FORCE_SCRIPT_NAME
. On pourrait imaginer définir une variable javascript genre "prefix" qui soit par défaut à "/", mais qui prenne la valeur deFORCE_SCRIPT_NAME
si définie. Ensuite tous les appels asynchrones peuvent utiliser cette variable.Si tu veux t'essayer à contribuer, n'hésite pas, je ne pense pas que ce soit très compliqué à implémenter :)