diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index ee7418dacc..d3b9d9a24b 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -61,11 +61,17 @@ 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? + logger.log user_id:req?.session?.user?._id, ip:req?.ip, "cdnBlocked for user, not using it and turning it off for future requets" + 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..88fe4187fe 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} @@ -52,7 +53,15 @@ html(itemscope, itemtype='http://schema.org/Product') block scripts 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(src=buildJsPath("libs/angular-1.3.15.min.js", {fingerprint:false})) + script. window.sharelatex = { siteUrl: '#{settings.siteUrl}', diff --git a/services/web/config/settings.defaults.coffee b/services/web/config/settings.defaults.coffee index a326c3b07d..10fef74a11 100644 --- a/services/web/config/settings.defaults.coffee +++ b/services/web/config/settings.defaults.coffee @@ -116,7 +116,7 @@ module.exports = settings = # cdn: # web: - # host:"http://cdn.sharelatex.dev:3000" + # host:"http://nowhere.sharelatex.dev" # darkHost:"http://cdn.sharelatex.dev:3000" # Where your instance of ShareLaTeX can be found publically. Used in emails