diff --git a/module/javascript/script_module.js b/module/javascript/script_module.js
index db3c69f1043ee8fb02e402906b686add1583963d..5558663235c31ed48a18d3e75b77898f287d972d 100644
--- a/module/javascript/script_module.js
+++ b/module/javascript/script_module.js
@@ -2588,7 +2588,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
                             "data": {"widgetFileContent": sCode},
                             "scope": scope,
                             "success": function(response) {
-                                oFormValues['url_widget_file'] = propertiesSrvc['web_server_name'] + '/' + propertiesSrvc['ws_data_alias'] + '/gtf/widget/' + response["data"]['workspace_key'] + '.html?token=' + oFormValues['token'];
+                                oFormValues['url_widget_file'] = response["data"]['widget_file_url'];
                                 oFormValues['btn_download_widget_file'] = oFormValues['url_widget_file'];
                                 formSrvc['getFormElementDefinition']('url_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
                                 formSrvc['getFormElementDefinition']('btn_download_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
@@ -2677,7 +2677,8 @@ vitisApp.on('appMainDrtvLoaded', function () {
                     "scope": scope,
                     "success": function(response) {
                         if (response["data"]['status'] === 1) {
-                            oFormValues['url_widget_file'] = propertiesSrvc['web_server_name'] + '/' + propertiesSrvc['ws_data_alias'] + '/gtf/widget/' + response["data"]['workspace_key'] + '.html?token=' + oFormValues['token'];
+                            var oFormValues = envSrvc['oFormValues'][envSrvc['sFormDefinitionName']];
+                            oFormValues['url_widget_file'] = response["data"]['widget_file_url'];
                             oFormValues['btn_download_widget_file'] = oFormValues['url_widget_file'];
                             formSrvc['getFormElementDefinition']('url_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
                             formSrvc['getFormElementDefinition']('btn_download_widget_file', envSrvc['sFormDefinitionName'])['visible'] = true;
diff --git a/web_service/ws/Workspaces.class.inc b/web_service/ws/Workspaces.class.inc
index f38f596690621a8c6a58aaa5238dad661daf5a0c..2ae96b411879c5da643747ef0ed38791e4da2ab4 100755
--- a/web_service/ws/Workspaces.class.inc
+++ b/web_service/ws/Workspaces.class.inc
@@ -322,6 +322,10 @@ class Workspaces extends GTF {
             $sWidgetHtml .= '' . PHP_EOL . '</body>' . PHP_EOL . '</html>';
             // Création du fichier du widget.
             if (putFileContentInWsDataDir('gtf', 'widget', '', '', $sWorkspace_key . ".html", $sWidgetHtml) !== false) {
+                // Url du fichier du widget.
+                $sFileUrl = getFileUrlInWsDataDir('gtf', 'widget', '', '', $sWorkspace_key . ".html");
+                if ($sFileUrl !== false)
+                    $this->aFields['widget_file_url'] = $sFileUrl;
                 $aXmlRacineAttribute['status'] = 1;
                 $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
             }
@@ -1205,6 +1209,12 @@ class Workspaces extends GTF {
             $aReturn = array('status' => 0, 'error_code' => 13, 'message' => 'The file ' . $sWidgetFile . ' does not exist.');
             WriteToErrorLog("The file '$sWidgetFile' does not exist.");
         }
+        else {
+            // Url du fichier du widget.
+            $sFileUrl = getFileUrlInWsDataDir('gtf', 'widget', '', '', $sWidgetFile);
+            if ($sFileUrl !== false)
+                $this->aFields['widget_file_url'] = $sFileUrl;
+        }
         return $aReturn;
     }