Closed spelhate closed 1 year ago
En effet c'est étrange, je vais regarder.
tu peux me partager ta config front stp @spelhate ?
pour le service :
[Service]
Environnement="LOG_LEVEL=INFO"
Environnement="CONF_PATH_FROM_MVIEWER=apps/store"
Environment="EXPORT_CONF_FOLDER=/home/debian/mviewer/apps/store/"
Environnement="CONF_PUBLISH_PATH_FROM_MVIEWER=apps/prod"
Environment="MVIEWERSTUDIO_PUBLISH_PATH=/home/debian/mviewer/apps/prod/"
Environment="DEFAULT_ORG=megalis2"
config.son
{
"app_conf": {
"studio_title": "Mviewer STudio Megalis",
"mviewer_version": "3.9",
"mviewerstudio_version": "3.2",
"api": "api/app",
"store_style_service": "api/style",
"mviewer_instance": "https://delib.csm.ovh/mviewer/",
"publish_url": "?config=apps/prod/{{config}}.xml",
"conf_path_from_mviewer": "apps/store/",
"mviewer_short_url": {
"used": true,
"apps_folder": "store",
"public_folder": "prod"
},
"external_themes": {
"used": true,
"url": "https://geobretagne.fr/minicatalog/csv"
},
"user_info": "api/user",
"proxy": "/mviewerstudio/proxy/?url=",
"user_info_visible": false,
"app_form_placeholders": {
"app_title": "Kartenn",
"logo_url": "https://geobretagne.fr/pub/logo/region-bretagne.jpg",
"help_file": "mviewer_help.html"
},
"map": {
"center": [-307903.74898791354, 6141345.088741366],
"zoom": 7
},
"baselayers": {
"positron": {
"id": "positron",
"thumbgallery": "img/basemap/positron.png",
"title": "CartoDb",
"label": "Positron",
"type": "OSM",
"url": "https://{a-c}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png",
"attribution": "Map tiles by <a href=\"https://cartodb.com/attributions\">CartoDb</a>, under <a href=\"https://creativecommons.org/licenses/by/3.0/\">CC BY 3.0 </a>"
},
"ortho_ign": {
"id": "ortho_ign",
"thumbgallery": "img/basemap/ortho.jpg",
"title": "IGN",
"label": "Photographies aériennes IGN",
"type": "WMTS",
"url": "https://wxs.ign.fr/choisirgeoportail/geoportail/wmts?",
"layers": "ORTHOIMAGERY.ORTHOPHOTOS",
"format": "image/jpeg",
"fromcapacity": "false",
"attribution": "<a href='https://geoservices.ign.fr' target='_blank'><img src='https://geoservices.ign.fr/images/logoIGN.png'></a>",
"style": "normal",
"matrixset": "PM",
"maxzoom": "22"
},
"darkmatter": {
"id": "darkmatter",
"thumbgallery": "img/basemap/darkmatter.png",
"title": "CartoDb",
"label": "Dark Matter",
"type": "OSM",
"url": "https://{a-c}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png",
"maxzoom": "20",
"attribution": "Map tiles by <a href=\"https://cartodb.com/attributions\">CartoDb</a>, under <a href=\"https://creativecommons.org/licenses/by/3.0/\">CC BY 3.0 </a>"
},
"esriworldimagery": {
"id": "esriworldimagery",
"thumbgallery": "img/basemap/esriworldwide.jpg",
"title": "Esri",
"label": "Esri world imagery",
"type": "OSM",
"url": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
"attribution": "<a href=\"https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9\" target=\"_blank\" >Esri world imagery</a>"
},
"ortho1": {
"id": "ortho1",
"thumbgallery": "img/basemap/ortho.jpg",
"title": "GéoBretagne",
"label": "Photo aérienne actuelle GéoBretagne",
"type": "WMTS",
"url": "https://tile.geobretagne.fr/gwc02/service/wmts",
"layers": "satellite",
"format": "image/png",
"style": "_null",
"matrixset": "EPSG:3857",
"fromcapacity": "false",
"attribution": "<a href=\"https://geobretagne.fr/geonetwork/srv/fre/catalog.search#/metadata/3a0ac2e3-7af1-4dec-9f36-dae6b5a8c731\" target=\"_blank\" >partenaires GéoBretagne - Megalis Bretagne - IGN - PlanetObserver</a>"
},
"ortho_ir": {
"id": "ortho_ir",
"thumbgallery": "img/basemap/ir.jpg",
"title": "GéoBretagne",
"label": "Photo aérienne infra rouge GéoBretagne",
"type": "WMTS",
"url": "https://geobretagne.fr/geoserver/gwc/service/wmts",
"layers": "photo:ir-composite",
"format": "image/jpeg",
"style": "_null",
"matrixset": "EPSG:3857",
"fromcapacity": "false",
"attribution": "<a href=\"https://geobretagne.fr/geonetwork/srv/fre/catalog.search#/metadata/434b82a8-8d3c-4d9f-9eb3-0485f1a63eb6\" target=\"_blank\" >partenaires GéoBretagne - Megalis Bretagne - IGN</a>"
},
"osm_google": {
"id": "osm_google",
"thumbgallery": "img/basemap/osm_google.png",
"title": "GéoBretagne",
"label": "OpenStreetMap GéoBretagne",
"type": "WMS",
"url": "https://osm.geobretagne.fr/gwc01/service/wms",
"layers": "osm:google",
"format": "image/png",
"attribution": "GéoBretagne. Données : les contributeurs d'<a href=\"https://www.openstreetmap.org/\" target=\"_blank\">OpenStreetMap </a>, <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">ODbL </a>"
},
"osm": {
"id": "osm",
"thumbgallery": "img/basemap/osm.png",
"title": "OSM",
"label": "OpenStreetMap",
"type": "OSM",
"url": "https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",
"attribution": "Données : les contributeurs d'<a href=\"https://www.openstreetmap.org/\" target=\"_blank\">OpenStreetMap </a><a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">ODbL </a>"
},
"osm_bzh": {
"id": "osm_bzh",
"thumbgallery": "img/basemap/osm.png",
"title": "OSM BZH",
"label": "OpenStreetMap en breton",
"type": "OSM",
"maxzoom": "20",
"url": "https://tile.openstreetmap.bzh/br/{z}/{x}/{y}.png",
"attribution": "Kendaolerien <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a>"
},
"plan_ign": {
"id": "plan_ign",
"thumbgallery": "img/basemap/scan-express.jpg",
"title": "IGN",
"label": "Plan IGN v2",
"type": "WMTS",
"url": "https://wxs.ign.fr/choisirgeoportail/geoportail/wmts?",
"layers": "GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2",
"format": "image/png",
"fromcapacity": "false",
"attribution": "<a href='https://geoservices.ign.fr' target='_blank'><img src='https://geoservices.ign.fr/images/logoIGN.png'></a>",
"style": "normal",
"matrixset": "PM",
"maxzoom": "22"
}
},
"data_providers": {
"csw": [{
"title": "Catalogue GéoBretagne",
"url": "https://geobretagne.fr/geonetwork/srv/fre/csw",
"baseref": "https://geobretagne.fr/geonetwork/srv/eng/catalog.search?node=srv#/metadata/"
},
{
"title": "Catalogue Région Bretagne",
"url": "https://kartenn.region-bretagne.fr/geonetwork/srv/fre/csw",
"baseref": "https://kartenn.region-bretagne.fr/geonetwork/srv/fre/catalog.search#/metadata/"
},
{
"title": "Catalogue de la Région Grand Est",
"url": "https://www.geograndest.fr/geonetwork/srv/fre/csw",
"baseref": "https://www.geograndest.fr/geonetwork/srv/eng/catalog.search?node=srv#/metadata/"
},
{
"title": "Catalogue de la Région Pays de la Loire",
"url": "https://www.geopal.org/geonetwork/srv/fre/csw",
"baseref": "https://www.geopal.org/geonetwork/srv/eng/catalog.search?node=srv#/metadata/"
}
],
"wms": [{
"title": "Serveur WMS de la Région",
"url": "https://ows.region-bretagne.fr/geoserver/rb/wms"
}]
},
"default_params": {
"layer": {
"info_format": "text/html"
}
}
}
}
merci
Testé sur VSR Kartenn pour une même application template en mode brouillon = ok (url absolue) template en mode "en ligne" = ko (url relative)
template en mode brouillon = ok (url absolue) template en mode "en ligne" = ko (url relative)
Je pense qu'il y a en effet un inversement. L'URL devrait être absolue pour le mode en ligne et non brouillon.
Lors de mes tests les URLs fonctionnent dans les deux cas.
Après réflexion, il est vrai que j'avais mis les URL absolu pour le mode brouillon car pour la prévisualisation, on utilise un identifiant temporaire (= 1 répertoire temporaire). Donc pour ne pas recréer l'URL en preview, j'ai mis des URL absolues. L'URL absolue devrait fonctionner en l'état, c'est le cas chez nous.
<template url="http://127.0.0.1:5051/apps/store/megalis2/eeb2735ca7ed/226/templates/lycee.mst"/>
http://127.0.0.1:5051/#prod/megalis2/226
<template url="apps/prod/megalis2/226/templates/lycee.mst"/>
<template url="https://gis.jdev.fr/mviewer/apps/store/jdev/d0c421015f3b/test2/templates/lycee.mst"/>
https://gis.jdev.fr/mviewer/#public/jdev/test2
<template url="apps/public/jdev/test2/templates/lycee.mst"/>
... suite du commentaire précédent
Voici la config front gis.jdev :
https://gis.jdev.fr/mviewerstudio/apps/config.json
Voici la config gunicorn du serveur :
[Service]
User=mviewer
Environment="EXPORT_CONF_FOLDER=/var/www/mviewer/apps/store/"
Environment="CONF_PUBLISH_PATH_FROM_MVIEWER=apps/public"
Environment="CONF_PATH_FROM_MVIEWER="apps/store"
Environment="MVIEWERSTUDIO_PUBLISH_PATH=/var/www/mviewer/apps/public"
Environment="DEFAULT_ORG=public"
WorkingDirectory=/home/mviewer/mviewerstudio/srv/python
ExecStart=.....
Fonctionnement = OK
En réponse à ton premier commentaire de description d'issue @spelhate :
je ne comprends pas d'où vient le /public/
Je ne vois pas ton exemplle avec /public/
. Où vois-tu ce chemin ?
Dans le xml
Lors de mes tests les URLs fonctionnent dans les deux cas.
Pas d'accord car tu as laissé la valeur par défaut : apps/public pour CONF_PUBLISH_PATH_FROM_MVIEWER
dans mon cas c'est apps/prod comme dans la conf transmise.
Oui vu mais j'ai testé en local et ca fonctionne avec /prod (voir ici). je vais tester sur gis.jdev.
test réalisé avec /prod :
https://gis.jdev.fr/mviewerstudio/index.html#
<template url="apps/prod/jdev/226/templates/lycee.mst"/>
Config gunicorn :
[Service]
User=mviewer
Environment="EXPORT_CONF_FOLDER=/var/www/mviewer/apps/store/"
Environment="CONF_PUBLISH_PATH_FROM_MVIEWER=apps/prod"
Environment="CONF_PATH_FROM_MVIEWER="apps/store"
Environment="MVIEWERSTUDIO_PUBLISH_PATH=/var/www/mviewer/apps/prod"
Environment="DEFAULT_ORG=public"
WorkingDirectory=/home/mviewer/mviewerstudio/srv/python
Config front :
je constate que dans ta conf, il n'y a pas de / à la fin de /var/www/mviewer/apps/prod" alors que moi j'en ai un.
J'ai trouvé. Ca venait de ma conf : Environnement="CONF_PUBLISH_PATH_FROM_MVIEWER=apps/prod" J'ai écrit Environnement au lieu de Environment et du coup Studio appliquait le paramètre par défaut = public.
Je laisse l'issue ouverte car reste le problème de l'URL relative.
Je laisse l'issue ouverte car reste le problème de l'URL relative.
Elle ne fonctionne pas c'est ca ?
Si mais c'est toujours une url relative dans la version publiée.
Exemple : <template url="apps/public/RB/vn/templates/bief.mst" />
Et <template url="https://kartenn.region-bretagne.fr/studio-mviewer/apps/store/RB/777be7aec7c1/vn/templates/ecluse.mst" ></template>
dans la version brouillon.
Je pense qu'un échange est nécessaire pour vous expliquer ce choix. En l'état je ne comprend pas la nécessité d'avoir une URL absolu pour les templates.
template en mode brouillon = ok (url absolue) template en mode "en ligne" = ko (url relative)
Je pense qu'il y a en effet un inversement. L'URL devrait être absolue pour le mode en ligne et non brouillon.
Vérifié hier, c'est bien normal.
Voici la réflexion entamée et fonctionnelle qu'on doit peut être revoir ensemble :
Publication -> URL Absolu : permet le partage notamment avec le système de thématique externe. Brouillon -> URL Relative : permet d'utiliser le template du mviewer courant, les brouillons n'étant pas à utiliser pour les thématiques externes
Pas sûr de bien comprendre. pour moi c'était déjà l'objectif visé :
Voici la réflexion entamée et fonctionnelle qu'on doit peut être revoir ensemble : Publication -> URL Absolu : permet le partage notamment avec le système de thématique externe. Brouillon -> URL Relative : permet d'utiliser le template du mviewer courant, les brouillons n'étant pas à utiliser pour les thématiques externes
Suite au point de ce jour, il a été validé par Megalis / GeoB que le ressources de publication sont considérées comme dans la même instance et donc accessible avec le paramètre mviewer_instance de la config front du studio :
"mviewer_instance": "https://delib.csm.ovh/mviewer/",
Les modifications ont été apportées ce jour sur la branche de vsr pour obtenir :
Exemple :
https://gis.jdev.fr/mviewer/apps/prod/jdev/266.xml
<template url="https://gis.jdev.fr/mviewer/apps/prod/jdev/266/templates/lycee.mst"/>
Exemple :
https://gis.jdev.fr/mviewer/apps/store/jdev/d054ef3bd265/preview/dfbd18b8-0475-11ee-9a0c-fa163e3fca1c.xml
<template url="apps/store/jdev/d054ef3bd265/266/templates/lycee.mst"/>
A tester donc, mais je pense que ma modifications devrait correspondre au besoin.
J'ai testé sur ma version après git pull et j'ai des soucis. J'ai recréé un projet
En mode brouillon : <template url="apps/store/undefined" >
En mode publié : <template url="apps/public/RB/test_lien/templates/structure_ess.mst" />
Du coup c'est même pire, la fiche ne fonctionne plus en mode brouillon.
J'aurai du réagir hier mais pour moi, il faut conserver les urls absolues en brouillon car un utilisateur lambda n'a pas moyen de télécharger le XML publié, seulement le brouillon s'il souhaite pour une raison quelconque déplacer le XML.
Testé ce matin avec le nouveau comportement. j'ai bien 2 urls absolues ce qui me permet de déplacer un XML au besoin.
Ma configuration :
J'arrive sans difficulté à publier une application mviewer basique ce qui me laisse penser que je n'ai pas de problème de configuration. Je retorouve bien toute le dossier de l'application dans /home/debian/mviewer/apps/prod/megalis2/publish_test
En revanche les templates sont inopérants dans l'application publiée. Exemple de balise template créée par studio
alors que ça devrait être :
je ne comprends pas d'où vient le /public/