Просмотр исходного кода

Merge pull request #225 from sharelatex/ho-hash-on-minifiy-only

only hash the static content when minified is on
James Allen 8 лет назад
Родитель
Сommit
0a4febfce6
1 измененных файлов с 19 добавлено и 16 удалено
  1. 19 16
      services/web/app/coffee/infrastructure/ExpressLocals.coffee

+ 19 - 16
services/web/app/coffee/infrastructure/ExpressLocals.coffee

@@ -36,7 +36,6 @@ getFileContent = (filePath)->
 		logger.log filePath:filePath, "file does not exist for hashing"
 		return ""
 
-logger.log "Generating file hashes..."
 pathList = [
 	"#{jsPath}libs/require.js"
 	"#{jsPath}ide.js"
@@ -46,23 +45,27 @@ pathList = [
 	"/stylesheets/ol-style.css"
 ]
 
-for path in pathList
-	content = getFileContent(path)
-	hash = crypto.createHash("md5").update(content).digest("hex")
-	
-	splitPath = path.split("/")
-	filenameSplit = splitPath.pop().split(".")
-	filenameSplit.splice(filenameSplit.length-1, 0, hash)
-	splitPath.push(filenameSplit.join("."))
+if !Settings.useMinifiedJs 
+	logger.log "not using minified JS, not hashing static files"
+else
+	logger.log "Generating file hashes..."
+	for path in pathList
+		content = getFileContent(path)
+		hash = crypto.createHash("md5").update(content).digest("hex")
+		
+		splitPath = path.split("/")
+		filenameSplit = splitPath.pop().split(".")
+		filenameSplit.splice(filenameSplit.length-1, 0, hash)
+		splitPath.push(filenameSplit.join("."))
 
-	hashPath = splitPath.join("/")
-	hashedFiles[path] = hashPath
+		hashPath = splitPath.join("/")
+		hashedFiles[path] = hashPath
 
-	fsHashPath = Path.join __dirname, "../../../", "public#{hashPath}"
-	fs.writeFileSync(fsHashPath, content)
+		fsHashPath = Path.join __dirname, "../../../", "public#{hashPath}"
+		fs.writeFileSync(fsHashPath, content)
 
 
-logger.log "Finished hashing static content"
+		logger.log "Finished hashing static content"
 
 cdnAvailable = Settings.cdn?.web?.host?
 darkCdnAvailable = Settings.cdn?.web?.darkHost?
@@ -121,7 +124,7 @@ module.exports = (app, webRouter, privateApiRouter, publicApiRouter)->
 		res.locals.buildJsPath = (jsFile, opts = {})->
 			path = Path.join(jsPath, jsFile)
 
-			if opts.hashedPath
+			if opts.hashedPath && hashedFiles[path]?
 				path = hashedFiles[path]
 
 			if !opts.qs?
@@ -141,7 +144,7 @@ module.exports = (app, webRouter, privateApiRouter, publicApiRouter)->
 
 		res.locals.buildCssPath = (cssFile, opts)->
 			path = Path.join("/stylesheets/", cssFile)
-			if opts?.hashedPath
+			if opts?.hashedPath && hashedFiles[path]?
 				hashedPath = hashedFiles[path]
 				return Url.resolve(staticFilesBase, hashedPath)
 			return Url.resolve(staticFilesBase, path)