Refer to relative path instead of absolute path
There is no need to refer to the absolute path here if we can use the relative one. Conflicts: lib/private/templatelayout.php
This commit is contained in:
parent
8da6e4b9f0
commit
7b94c7f9c1
|
@ -157,7 +157,7 @@ class OC_TemplateLayout extends OC_Template {
|
|||
|
||||
public function generateAssets() {
|
||||
$jsFiles = self::findJavascriptFiles(OC_Util::$scripts);
|
||||
$jsHash = self::hashScriptNames($jsFiles);
|
||||
$jsHash = self::hashFileNames($jsFiles);
|
||||
|
||||
if (!file_exists("assets/$jsHash.js")) {
|
||||
$jsFiles = array_map(function ($item) {
|
||||
|
@ -179,7 +179,7 @@ class OC_TemplateLayout extends OC_Template {
|
|||
}
|
||||
|
||||
$cssFiles = self::findStylesheetFiles(OC_Util::$styles);
|
||||
$cssHash = self::hashScriptNames($cssFiles);
|
||||
$cssHash = self::hashFileNames($cssFiles);
|
||||
|
||||
if (!file_exists("assets/$cssHash.css")) {
|
||||
$cssFiles = array_map(function ($item) {
|
||||
|
@ -210,17 +210,30 @@ class OC_TemplateLayout extends OC_Template {
|
|||
$this->append('cssfiles', OC_Helper::linkTo('assets', "$cssHash.css"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the absolute filepath to a relative path from \OC::$SERVERROOT
|
||||
* @param string $filePath Absolute path
|
||||
* @return string Relative path
|
||||
* @throws Exception If $filePath is not under \OC::$SERVERROOT
|
||||
*/
|
||||
public static function convertToRelativePath($filePath) {
|
||||
$relativePath = explode(\OC::$SERVERROOT, $filePath);
|
||||
if(count($relativePath) !== 2) {
|
||||
throw new \Exception('$filePath is not under the \OC::$SERVERROOT');
|
||||
}
|
||||
|
||||
return $relativePath[1];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $files
|
||||
* @return string
|
||||
*/
|
||||
private static function hashScriptNames($files) {
|
||||
|
||||
$files = array_map(function ($item) {
|
||||
$root = $item[0];
|
||||
$file = $item[2];
|
||||
return $root . '/' . $file;
|
||||
}, $files);
|
||||
private static function hashFileNames($files) {
|
||||
foreach($files as $i => $file) {
|
||||
$files[$i] = self::convertToRelativePath($file[0]).'/'.$file[2];
|
||||
}
|
||||
|
||||
sort($files);
|
||||
// include the apps' versions hash to invalidate the cached assets
|
||||
|
|
Loading…
Reference in New Issue