GeotrekCE / Geotrek-rando

Geotrek public trekking website
http://geotrek.fr
28 stars 18 forks source link

Affichage données #764

Closed chanteclair12 closed 4 years ago

chanteclair12 commented 4 years ago

Bonjour, Je ne parviens pas à afficher les données dans Geotrek-rando. J'ai pris tous les dossiers générés par la fonction de synchronisation (https://github.com/GeotrekCE/Geotrek-admin/issues/2298) et les ai collé dans /geotrek-rando-2.24.1/public (installé sur un serveur différent de Geotrek-admin). Le paramètre root dans le fichier geotrek-rando de /etc/nginx/sites-available pointe bien sur ce dossier public. La page d'accueil permet l'accès au site mais un sablier en surimposition laisse apparaitre le reste de l'interface comme en filigrane (à gauche on voit la carte centrée sur le secteur voulu, mais rien à droite, page blanche). Le fichier d'erreur nginx ne signale que [warn] 23722#23722: duplicate MIME type "text/html" in /etc/nginx/sites-enabled/geotrek-rando:9. Je pense que les données ne sont pas lues, soit parce qu'elles ne sont pas au bon endroit, soit parce que mon paramètre root doit pointer sur un dossier plus précis. Si quelqu'un a une idée, je le remercie d'avance de son aide. Cordialement.

[edit] En complément, je viens de voir ceci dans le mode debug de FF : `Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://rando.fr/data-rando/api/fr/treks.geojson. Raison : échec de la requête CORS. adresse modifiée

[/edit]`

gutard commented 4 years ago

Cherchez du côté du paramètre API_URL. Le réglage de base qui correspond à 99% des cas est juste une chaîne vide. Là a priori vous avez mis "http://rando.fr/data-rando" sauf que je ne vois pas du tout à quoi ça peut correspondre dans votre cas.

chanteclair12 commented 4 years ago

Bonjour, Effectivement ce paramètre avait un mauvais chemin. Malheureusement, même en mettant la bonne url d'accès au site et le dossier où sont les données ("API_URL": "http://rando.fr/public", j'ai toujours ce "sablier" et aucune donnée affichée... J'ai bien re-éxécuté la commande run npm dist cette fois après modification.

[edit] Je viens de faire pointer les données sur le dossier /test/dataset et là, les données de ce jeu de test s'affichent. Les données générées depuis Geotrek-admin peuvent-elles être incomplètes ou "corrompues" pour que rien ne s'affiche avec nos données ? [/edit]

chanteclair12 commented 4 years ago

J'ai refait un export des données depuis Geotrek-admin avec la commande ./bin/django sync_rando --skip-tiles /moncheminversmesdonneesexportees. J'ai ensuite créé un dossier "prod" dans le dossier Geotrek-rando-2.24.1 et y ai copié les dossiers api, media et meta issus de l'export. J'ai modifié le fichier settings.custom.json en conséquence concernant le paramètre API_URL et lancer npm run dist mais aucunes de nos données ne s'affichent. Je ne sais plus où chercher ni quoi faire...

gutard commented 4 years ago

Avez-vous essayé "API_URL": "" comme je vous l'ai conseillé ? D'autre part, ne confondez-vous pas les deux directives "root" présentes dans le fichier de conf nginx ? Enfin, je pense que vous confondez chemin sur le disque et URL. Ce n'est pas parce que l'on met public comme chemin dans la conf que l'on retrouve ce public dans l'URL.

Sur quelle adresse allez-vous pour voir votre site Geotrek-rando ? C'est bien http://rando.fr ? La résolution DNS de rando.fr est-elle spécifique à votre réseau local ? Car chez moi ça renvoie vers un site qui dit « Rando.fr est en vente ».

L'auto-hébergement de Geotrek nécessite quelques compétences en administration système.

gutard commented 4 years ago

PS: merci de ne pas faire d'édit. On perd la compréhension de la chronologie des messages. De plus, cela n'envoie pas de mail d'alerte donc on rate de l'information.

chanteclair12 commented 4 years ago

Ok pour les EDIT. Oui j'ai testé le paramètre comme indiqué. Non, le domaine n'est pas celui indiqué et il n'est accessible que depuis notre réseau local. Je viens de voir que du copier/coller des données, résultait des droits différents et un propriétaire différent. J'imagine que c'est peut-être la cause du problème de lecture des fichiers. Merci de votre aide.

camillemonchicourt commented 4 years ago

Du coup vous avez pu régler cela ?

Voici comment ça fonctionne pour https://rando.ecrins-parcnational.fr/

Les contenus des randos sont accessibles à l'adresse https://rando.ecrins-parcnational.fr/api/fr/treks.geojson Dans le fichier settings.custom.py, j'ai "API_URL": "", Mes données sont rangées dans /home/myuser/data/

Et dans la configuration NGINX :

server {
    listen 80;
    server_name rando.ecrins-parcnational.fr;
......
    root /home/geotrek/Geotrek-rando/public;
......
    location ~ ^/(api|media|static|zip|meta)/ {
        root /home/geotrek/data/;
    }
......
}
chanteclair12 commented 4 years ago

Bonjour M. Monchicourt, Merci pour ces informations. Le changement des droits a permis d'afficher nos données. Je ne sais pas si c'est un comportement normal ou non. Cette tentative visait à "dégrossir" l'installation et le fonctionnement de Geotrek-rando. Cela nous a permis de rédiger une documentation d'installation interne afin d'éviter ces écueils pour, à terme, l'installation d'un serveur de production. Reste par-ci, par-là, des comportements qui ne correspondent pas à la doc en ligne. Par ex, la commande npm run dist ne peut se lancer qu'avec un sudo devant alors que nous avons suivi la doc pas à pas. Cette machine de test va être reformatée pour recommencer à nouveau l'installation et voir si tout fonctionne correctement au 1er coup. Question subsidiaire : peut-on déclarer les flux IGN sur Geotrek-rando (pour construire une URL pour Leaflet, j'ai trouvé ceci (https://geoservices.ign.fr/documentation/utilisation_web/wmts-leaflet.html) ? La doc ne parlant que de Leaflet et Mapbox. Merci à tous de votre aide et disponibilité.

camillemonchicourt commented 4 years ago

OK super. Il n'est pas normal d'exécuter la commande npm run dist en sudo. C'est du au fait que vous l'avez fait une fois ou que vous avez créé des dossiers avec l'utilisateur root (le npm install ?) et du coup les dossiers ne sont pas attribués au bon utilisateur, donc seul root peut y écrire.

Oui bien sur pour les fonds IGN, ils sont utilisés dans la plupart des portails Geotrek-rando. C'est comme dans Geotrek-admin. Il vous faut une clé API IGN associée à l'URL de votre serveur, avec les fonds souhaités. Et ensuite il suffit de les renseigner les bonnes URL dans la configuration carto (https://github.com/GeotrekCE/Geotrek-rando/blob/master/docs/settings-custom-json-all-options.md#main-options-1). Exemple, dans le fichier settings.custom.json de Rando Ecrins :

....
"PERMANENT_TILELAYERS":[
        {
            "LAYER_URL": "https://wxs.ign.fr/xxxxxxx-mykey-xxxxxxxxx/wmts?LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",
            "OPTIONS": {
                "attribution": "(c) IGN Geoportail",
                "minZoom": 4,
                "maxZoom": 12
            }
        },
        {
            "LAYER_URL": "https://wxs.ign.fr/xxxxxxxx-mykey-xxxxxxxxxxxxx/wmts?LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",
            "OPTIONS": {
                "attribution": "(c) IGN Geoportail",
                "minZoom": 13,
                "maxZoom": 17
            }
        }
    ],
    "ORTHOPHOTO_TILELAYERS_NAME": "Photo",
    "ORTHOPHOTO_TILELAYERS": {
        "LAYER_URL": "https://wxs.ign.fr/xxxxxxxxxxx-mykey-xxxxxxxxxxx/wmts?LAYER=ORTHOIMAGERY.ORTHOPHOTOS&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",
        "OPTIONS": {
            "id": "satellite",
            "attribution": "(c) IGN Geoportail"
        }
    },
....
chanteclair12 commented 4 years ago

Merci beaucoup pour votre aide précieuse. Lors de la réinstallation, nous tâcherons de bien faire attention à ne pas utiliser le root.

camillemonchicourt commented 4 years ago

Attention cependant, que cela serait très domaine que vous démarriez le projet avec un Geotrek-admin 2.32, alors qu'il y a une révision majeure et complète du mode d'installation et de l'architecture de l'application dans la version 2.33. Je vous conseille fortement de partir directement sur la version la plus récente (2.34 actuellement).

chanteclair12 commented 4 years ago

Nous avons déjà 2 serveurs Geotrek-admin en 2.32.1 (test et production) en fonction. Nous verrons dans quelques temps pour passer à la 2.33 ou 2.34. La machine dont je parlais, qui sera réinstallée, est celle supportant Geotrek-rando. Cordialement.

chanteclair12 commented 4 years ago

Si j'ai vu dans la doc Geotrek-admin les éléments sur les langues et les pages statiques, ainsi que d'éviter de modifier les langues existantes, je n'ai pas vu (ou compris) comment se passait la traduction. Lors de la synchronisation, les répertoires des 3 langues déclarées (fr, es, et en) sont bien remplis de json, pour autant, sur le portail rando, seul le français fonctionne. Faut-il "écraser" (et donc reprendre tout) l'existant comme spécifié dans la doc (https://github.com/GeotrekCE/Geotrek-rando/blob/master/docs/settings.md) ?

camillemonchicourt commented 4 years ago

On mélange un peu tout dans ce ticket, mais on va dire que c'est un ticket à part, exceptionnellement :-) Dans Geotrek-admin, on définit les langues que l'on souhaite pouvoir renseigner. Il est possible d'en ajouter après coup mais pas d'en retirer, car chaque langue ajoute des champs dans la BDD. Selon les langues définies dans Geotrek-admin, on peut renseigner chaque champs dans les différentes langues (titre rando, description....). On peut aussi définir pour chaque rando dans quelles langues on les publie ou non, selon la complétude des infos dans les différentes langues. Quand on synchronise les données, par défaut cela synchronise les contenus dans toutes les langues. Au niveau de la configuration de Geotrek-rando, on définit les langues activées ainsi que la langue par défaut (https://github.com/GeotrekCE/Geotrek-rando/blob/master/docs/settings-custom-json-all-options.md#languages)

chanteclair12 commented 4 years ago

Désolé pour ce mélange des genres, mais au final, tout est lié :-) Merci pour vos réponses d'une grande aide.