Преглед изворни кода

HUE-7816 [frontend] Use the Hue version as a parameter instead of a random number to control caching of non-static resources

Johan Ahlen пре 8 година
родитељ
комит
f4cb026

+ 3 - 0
desktop/core/src/desktop/templates/global_js_constants.mako

@@ -19,6 +19,7 @@
 
   from desktop import conf
   from desktop.conf import IS_EMBEDDED
+  from desktop.models import hue_version
 
   from beeswax.conf import LIST_PARTITIONS_LIMIT
   from indexer.conf import ENABLE_NEW_INDEXER
@@ -154,6 +155,8 @@
     }
   };
 
+  window.HUE_VERSION = '${ hue_version() }';
+
   %if hasattr(ENABLE_NEW_INDEXER, 'get') and ENABLE_NEW_INDEXER.get():
     window.IS_NEW_INDEXER_ENABLED = true;
   %else:

+ 2 - 2
desktop/core/src/desktop/templates/hue.mako

@@ -22,7 +22,7 @@
   from desktop.conf import DEV_EMBEDDED
   from desktop.views import _ko, commonshare, login_modal
   from desktop.lib.i18n import smart_unicode
-  from desktop.models import PREFERENCE_IS_WELCOME_TOUR_SEEN, ANALYTIC_DB
+  from desktop.models import PREFERENCE_IS_WELCOME_TOUR_SEEN, ANALYTIC_DB, hue_version
 
   from dashboard.conf import IS_ENABLED as IS_DASHBOARD_ENABLED
   from indexer.conf import ENABLE_NEW_INDEXER
@@ -109,7 +109,7 @@
 
   ${ commonHeaderFooterComponents.header_i18n_redirection() }
 
-  <script src="/desktop/globalJsConstants.js"></script>
+  <script src="/desktop/globalJsConstants.js?v=${ hue_version() }"></script>
 
   % if not conf.DEV.get():
   <script src="${ static('desktop/js/hue.errorcatcher.js') }"></script>

+ 3 - 3
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -3160,7 +3160,7 @@ ${ sqlSyntaxDropdown.sqlSyntaxDropdown() }
         };
 
         // For syntax checking
-        var aceSqlSyntaxWorker = new Worker('/desktop/workers/aceSqlSyntaxWorker.js?bust=' + Math.random());
+        var aceSqlSyntaxWorker = new Worker('/desktop/workers/aceSqlSyntaxWorker.js?v=' + HUE_VERSION);
         aceSqlSyntaxWorker.onmessage = function (e) {
           if (e.data.ping) {
             aceSqlSyntaxWorker.isReady = true;
@@ -3174,7 +3174,7 @@ ${ sqlSyntaxDropdown.sqlSyntaxDropdown() }
         });
 
         // For location marking
-        var aceSqlLocationWorker = new Worker('/desktop/workers/aceSqlLocationWorker.js?bust=' + Math.random());
+        var aceSqlLocationWorker = new Worker('/desktop/workers/aceSqlLocationWorker.js?v=' + HUE_VERSION);
         aceSqlLocationWorker.onmessage = function (e) {
           if (e.data.ping) {
             aceSqlLocationWorker.isReady = true;
@@ -3189,7 +3189,7 @@ ${ sqlSyntaxDropdown.sqlSyntaxDropdown() }
       }
   % else:
     var iframe = document.createElement("iframe");
-    iframe.src = typeof adaptHueEmbeddedUrls !== 'undefined' ? adaptHueEmbeddedUrls('/notebook/workers_embedded') : '/notebook/workers_embedded';
+    iframe.src = (typeof adaptHueEmbeddedUrls !== 'undefined' ? adaptHueEmbeddedUrls('/notebook/workers_embedded?v=') : '/notebook/workers_embedded?v=') + HUE_VERSION;
     iframe.name = "workerFrame";
     iframe.setAttribute('style', 'display: none;');
     document.body.appendChild(iframe);

+ 6 - 2
desktop/libs/notebook/src/notebook/templates/workers_embedded.mako

@@ -14,6 +14,10 @@
 ## See the License for the specific language governing permissions and
 ## limitations under the License.
 
+<%!
+  from desktop.models import hue_version
+%>
+
 <html>
 <body></body>
 <script type="text/javascript">
@@ -34,7 +38,7 @@
       };
 
       // For syntax checking
-      var aceSqlSyntaxWorker = new Worker(baseUrl + '/desktop/workers/aceSqlSyntaxWorker.js?bust=' + Math.random());
+      var aceSqlSyntaxWorker = new Worker(baseUrl + '/desktop/workers/aceSqlSyntaxWorker.js?v=${ hue_version() }');
       aceSqlSyntaxWorker.onmessage = function (e) {
         if (e.data.ping) {
           aceSqlSyntaxWorker.isReady = true;
@@ -44,7 +48,7 @@
       };
 
       // For location marking
-      var aceSqlLocationWorker = new Worker(baseUrl + '/desktop/workers/aceSqlLocationWorker.js?bust=' + Math.random());
+      var aceSqlLocationWorker = new Worker(baseUrl + '/desktop/workers/aceSqlLocationWorker.js?v=${ hue_version() }');
       aceSqlLocationWorker.onmessage = function (e) {
         if (e.data.ping) {
           aceSqlLocationWorker.isReady = true;