From a2a8b7123bdfd3bea80a36b5ecddb7706dd3f2a8 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 18 Jul 2016 17:18:51 +0100 Subject: [PATCH] created buildCssPath img and js path funcs --- .../infrastructure/ExpressLocals.coffee | 43 +++++++++++++------ services/web/app/views/general/500.jade | 4 +- services/web/app/views/layout.jade | 10 ++--- services/web/app/views/project/editor.jade | 6 ++- .../web/app/views/project/list/side-bar.jade | 4 +- services/web/app/views/sentry.jade | 2 +- .../subscriptions/edit-billing-details.jade | 2 +- .../successful_subscription.jade | 4 +- .../translations/translation_message.jade | 2 +- 9 files changed, 48 insertions(+), 29 deletions(-) diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index 56de842052..0d47855221 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -12,8 +12,7 @@ fingerprints = {} Path = require 'path' -imgPath = "/img/" -cssPath = "/stylesheets/" + jsPath = if Settings.useMinifiedJs "/minjs/" @@ -43,12 +42,19 @@ for path in [ else logger.log filePath:filePath, "file does not exist for fingerprints" +getFingerprint = (path) -> + if fingerprints[path]? + return fingerprints[path] + else + logger.err "No fingerprint for file: #{path}" + return "" + logger.log "Finished generating file fingerprints" + +staticFilesBase = "" if Settings.cdn?.web?.host? - jsPath = "#{Settings.cdn?.web?.host}#{jsPath}" - imgPath = "#{Settings.cdn?.web?.host}#{imgPath}" - cssPath = "#{Settings.cdn?.web?.host}#{cssPath}" + staticFilesBase = Settings.cdn?.web?.host module.exports = (app, webRouter, apiRouter)-> @@ -58,10 +64,26 @@ module.exports = (app, webRouter, apiRouter)-> webRouter.use (req, res, next)-> res.locals.jsPath = jsPath - res.locals.imgPath = imgPath - res.locals.cssPath = cssPath + imgPath = "/img/" + cssPath = "/stylesheets/" + + + res.locals.buildJsPath = (jsFile, fingerprint)-> + if !fingerprint? + fingerprint = getFingerprint(jsPath + jsFile) + p = Path.join(staticFilesBase, jsPath, jsFile) + "?fingerprint=" + fingerprint + + + res.locals.buildCssPath = (cssFile)-> + return Path.join(staticFilesBase, cssPath, cssFile) + "?fingerprint=" + getFingerprint(cssPath + cssFile) + + res.locals.buildImgPath = (imgFile)-> + return Path.join(staticFilesBase, imgPath, imgFile) + next() + + webRouter.use (req, res, next)-> res.locals.settings = Settings next() @@ -127,12 +149,7 @@ module.exports = (app, webRouter, apiRouter)-> next() webRouter.use (req, res, next)-> - res.locals.fingerprint = (path) -> - if fingerprints[path]? - return fingerprints[path] - else - logger.err "No fingerprint for file: #{path}" - return "" + res.locals.fingerprint = getFingerprint next() webRouter.use (req, res, next)-> diff --git a/services/web/app/views/general/500.jade b/services/web/app/views/general/500.jade index c6f32ae448..ef74ed7435 100644 --- a/services/web/app/views/general/500.jade +++ b/services/web/app/views/general/500.jade @@ -3,7 +3,7 @@ html(itemscope, itemtype='http://schema.org/Product') head title Something went wrong link(rel="icon", href="/favicon.ico") - link(rel='stylesheet', href=cssPath+'/style.css') + link(rel='stylesheet', href=buildCssPath('/style.css')) link(href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css",rel="stylesheet") body .content @@ -12,7 +12,7 @@ html(itemscope, itemtype='http://schema.org/Product') .col-md-8.col-md-offset-2.text-center .page-header h2 Oh dear, something went wrong. - p: img(src=imgPath+"lion-sad-128.png", alt="Sad Lion") + p: img(src=buildImgPath("lion-sad-128.png"), alt="Sad Lion") p | Something went wrong with your request, sorry. Our staff are probably looking into this, but if it continues, please contact us at #{settings.adminEmail} p diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index f1e4693008..4c5d504a94 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -15,10 +15,10 @@ html(itemscope, itemtype='http://schema.org/Product') -if (typeof(title) == "undefined") title= 'ShareLaTeX, '+ translate("online_latex_editor") -else - title= translate(title) + ' - ShareLaTeX, '+translate("online_latex_editor") + title= translate(title) + ' - ShareLaTeX, ' + translate("online_latex_editor") link(rel="icon", href="/favicon.ico") - link(rel='stylesheet', href=cssPath+'/style.css?fingerprint='+fingerprint('/stylesheets/style.css')) + link(rel='stylesheet', href=buildCssPath('/style.css')) if settings.i18n.subdomainLang each subdomainDetails in settings.i18n.subdomainLang @@ -124,8 +124,8 @@ html(itemscope, itemtype='http://schema.org/Product') window.csrfToken = "#{csrfToken}"; block scripts - script(src="#{jsPath}libs/jquery-1.11.1.min.js") - script(src="#{jsPath}libs/angular-1.3.15.min.js") + script(src=buildJsPath("libs/jquery-1.11.1.min.js")) + script(src=buildJsPath("libs/angular-1.3.15.min.js")) script. window.sharelatex = { siteUrl: '#{settings.siteUrl}', @@ -196,7 +196,7 @@ html(itemscope, itemtype='http://schema.org/Product') script( data-main=jsPath+'main.js', baseurl=jsPath, - src=jsPath+'libs/require.js?fingerprint='+fingerprint(jsPath + 'libs/require.js') + src=buildJsPath('libs/require.js') ) include contact-us-modal diff --git a/services/web/app/views/project/editor.jade b/services/web/app/views/project/editor.jade index bcb69597eb..1036f95602 100644 --- a/services/web/app/views/project/editor.jade +++ b/services/web/app/views/project/editor.jade @@ -129,7 +129,9 @@ block content - var pdfPath = 'libs/pdfjs-1.3.91/pdf.worker.js' - var fingerprintedPath = fingerprint(jsPath+pdfPath) - - var pdfJsWorkerPath = jsPath+pdfPath+'?fingerprint='+fingerprintedPath + - var pdfJsWorkerPath = buildJsPath(pdfPath, fingerprintedPath) + + script(type='text/javascript'). window.pdfJsWorkerPath = "#{pdfJsWorkerPath}"; @@ -137,7 +139,7 @@ block content data-main=jsPath+"ide.js", baseurl=jsPath, data-ace-base=jsPath+'ace', - src=jsPath+'libs/require.js?fingerprint='+fingerprint(jsPath + 'libs/require.js') + src=buildJsPath('libs/require.js') ) diff --git a/services/web/app/views/project/list/side-bar.jade b/services/web/app/views/project/list/side-bar.jade index 10f28aa496..1045eba4b2 100644 --- a/services/web/app/views/project/list/side-bar.jade +++ b/services/web/app/views/project/list/side-bar.jade @@ -135,7 +135,7 @@ p span Get Dropbox Sync p - img(src=imgPath+"dropbox/simple_logo.png") + img(src=buildImgPath("dropbox/simple_logo.png")) p a(href="/user/subscription/plans", sixpack-convert="left-menu-upgraed-rotation").btn.btn-primary #{translate("upgrade")} p.small.text-centered @@ -148,7 +148,7 @@ p span Get Github Sync p - img(src=imgPath+"github/octocat.jpg") + img(src=buildImgPath("github/octocat.jpg")) p a(href="/user/subscription/plans", sixpack-convert="left-menu-upgraed-rotation").btn.btn-primary #{translate("upgrade")} p.small.text-centered diff --git a/services/web/app/views/sentry.jade b/services/web/app/views/sentry.jade index 9fe5dd3b7d..f339e26cae 100644 --- a/services/web/app/views/sentry.jade +++ b/services/web/app/views/sentry.jade @@ -2,7 +2,7 @@ - if (sentrySrc.match(/^([a-z]+:)?\/\//i)) script(src="#{sentrySrc}") - else - script(src="#{jsPath}libs/#{sentrySrc}") + script(src=buildJsPath("libs/#{sentrySrc}")) - if (typeof(sentrySrc) != "undefined") script(type="text/javascript"). if (typeof(Raven) != "undefined" && Raven.config) { diff --git a/services/web/app/views/subscriptions/edit-billing-details.jade b/services/web/app/views/subscriptions/edit-billing-details.jade index bc47efb4cb..f0b6671bcd 100644 --- a/services/web/app/views/subscriptions/edit-billing-details.jade +++ b/services/web/app/views/subscriptions/edit-billing-details.jade @@ -3,7 +3,7 @@ extends ../layout block content - locals.supressDefaultJs = true script(data-main=jsPath+'main.js', src=jsPath+'libs/require.js', baseurl=jsPath) - script(src=jsPath+'libs/recurly.min.js') + script(src=buildJsPath('libs/recurly.min.js')) .content.content-alt .container diff --git a/services/web/app/views/subscriptions/successful_subscription.jade b/services/web/app/views/subscriptions/successful_subscription.jade index 7ed77b6518..8413f5e036 100644 --- a/services/web/app/views/subscriptions/successful_subscription.jade +++ b/services/web/app/views/subscriptions/successful_subscription.jade @@ -30,10 +30,10 @@ block content | Henry and James .portraits span.img-circle - img(src=imgPath+"about/henry_oswald.jpg") + img(src=buildImgPath("about/henry_oswald.jpg")) |   span.img-circle - img(src=imgPath+"about/james_allen.jpg") + img(src=buildImgPath("about/james_allen.jpg")) p a.btn.btn-primary(href="/project") < #{translate("back_to_your_projects")} diff --git a/services/web/app/views/translations/translation_message.jade b/services/web/app/views/translations/translation_message.jade index cf3ba0ce17..225ad3ea2c 100644 --- a/services/web/app/views/translations/translation_message.jade +++ b/services/web/app/views/translations/translation_message.jade @@ -2,7 +2,7 @@ span(ng-controller="TranslationsPopupController", ng-cloak) .translations-message(ng-hide="hidei18nNotification") a(href=recomendSubdomain.url+currentUrl) !{translate("click_here_to_view_sl_in_lng", {lngName:"" + translate(recomendSubdomain.lngCode) + ""})} - img(src=imgPath+"flags/24/#{recomendSubdomain.lngCode}.png") + img(src=buildImgPath("flags/24/#{recomendSubdomain.lngCode}.png")) button(ng-click="dismiss()").close.pull-right span(aria-hidden="true") × span.sr-only #{translate("close")} \ No newline at end of file