diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index ee7418dacc..155b6ac3c0 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -61,11 +61,16 @@ module.exports = (app, webRouter, apiRouter)-> webRouter.use (req, res, next)-> + cdnBlocked = req.query.nocdn == 'true' or req.session.cdnBlocked + + if cdnBlocked and !req.session.cdnBlocked? + req.session.cdnBlocked = true + isDark = req.headers?.host?.slice(0,4)?.toLowerCase() == "dark" isSmoke = req.headers?.host?.slice(0,5)?.toLowerCase() == "smoke" isLive = !isDark and !isSmoke - - if cdnAvailable and isLive + + if cdnAvailable and isLive and !cdnBlocked staticFilesBase = Settings.cdn?.web?.host else if darkCdnAvailable and isDark staticFilesBase = Settings.cdn?.web?.darkHost diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 3c781a4b9f..f1bfeedfee 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -8,6 +8,7 @@ html(itemscope, itemtype='http://schema.org/Product') window.similarproducts = true style [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {display: none !important; display: none; } + -if (typeof(gaExperiments) != "undefined") |!{gaExperiments} @@ -51,8 +52,16 @@ html(itemscope, itemtype='http://schema.org/Product') window.csrfToken = "#{csrfToken}"; block scripts - script(src=buildJsPath("libs/jquery-1.11.1.min.js", {fingerprint:false})) script(src=buildJsPath("libs/angular-1.3.15.min.js", {fingerprint:false})) + script(src=buildJsPath("libs/jquery-1.11.1.min.js", {fingerprint:false})) + script(type="text/javascript"). + var noCdnKey = "nocdn=true" + var cdnBlocked = typeof jQuery === 'undefined' + var noCdnAlreadyInUrl = window.location.href.indexOf(noCdnKey) != -1 //prevent loops + if (cdnBlocked && !noCdnAlreadyInUrl) { + window.location.search += '&'+noCdnKey; + } + script. window.sharelatex = { siteUrl: '#{settings.siteUrl}', diff --git a/services/web/config/settings.defaults.coffee b/services/web/config/settings.defaults.coffee index a326c3b07d..56f3ee2b81 100644 --- a/services/web/config/settings.defaults.coffee +++ b/services/web/config/settings.defaults.coffee @@ -114,9 +114,9 @@ module.exports = settings = showSocialButtons: false showComments: false - # cdn: - # web: - # host:"http://cdn.sharelatex.dev:3000" + cdn: + web: + host:"http://nowhere.sharelatex.dev" # darkHost:"http://cdn.sharelatex.dev:3000" # Where your instance of ShareLaTeX can be found publically. Used in emails