diff options
-rw-r--r-- | config/config.sample.php | 10 | ||||
-rw-r--r-- | lib/private/template.php | 5 | ||||
-rw-r--r-- | lib/private/templatelayout.php | 9 | ||||
-rw-r--r-- | lib/repair/assetcache.php | 2 |
4 files changed, 19 insertions, 7 deletions
diff --git a/config/config.sample.php b/config/config.sample.php index 35e3f6ce5f1..91428bdc3e4 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -811,6 +811,16 @@ $CONFIG = array( 'asset-pipeline.enabled' => false, /** + * The parent of the directory where css and js assets will be stored if + * piplelining is enabled; this defaults to the ownCloud directory. The assets + * will be stored in a subdirectory of this directory named 'assets'. The + * server *must* be configured to serve that directory as $WEBROOT/assets. + * You will only likely need to change this if the main ownCloud directory + * is not writeable by the web server in your configuration. + */ +'assetdirectory' => '/var/www/owncloud', + +/** * Where ``mount.json`` file should be stored, defaults to ``data/mount.json`` */ 'mount_file' => 'data/mount.json', diff --git a/lib/private/template.php b/lib/private/template.php index 78ebb506385..d407eb8384c 100644 --- a/lib/private/template.php +++ b/lib/private/template.php @@ -233,13 +233,14 @@ class OC_Template extends \OC\Template\Base { */ public static function isAssetPipelineEnabled() { // asset management enabled? - $useAssetPipeline = \OC::$server->getConfig()->getSystemValue('asset-pipeline.enabled', false); + $config = \OC::$server->getConfig(); + $useAssetPipeline = $config->getSystemValue('asset-pipeline.enabled', false); if (!$useAssetPipeline) { return false; } // assets folder exists? - $assetDir = \OC::$SERVERROOT . '/assets'; + $assetDir = $config->getSystemValue('assetdirectory', \OC::$SERVERROOT) . '/assets'; if (!is_dir($assetDir)) { if (!mkdir($assetDir)) { \OCP\Util::writeLog('assets', diff --git a/lib/private/templatelayout.php b/lib/private/templatelayout.php index fa025721e53..db2230e4202 100644 --- a/lib/private/templatelayout.php +++ b/lib/private/templatelayout.php @@ -154,10 +154,11 @@ class OC_TemplateLayout extends OC_Template { } public function generateAssets() { + $assetDir = \OC::$server->getConfig()->getSystemValue('assetdirectory', \OC::$SERVERROOT); $jsFiles = self::findJavascriptFiles(OC_Util::$scripts); $jsHash = self::hashFileNames($jsFiles); - if (!file_exists("assets/$jsHash.js")) { + if (!file_exists("$assetDir/assets/$jsHash.js")) { $jsFiles = array_map(function ($item) { $root = $item[0]; $file = $item[2]; @@ -172,14 +173,14 @@ class OC_TemplateLayout extends OC_Template { $jsCollection = new AssetCollection($jsFiles); $jsCollection->setTargetPath("assets/$jsHash.js"); - $writer = new AssetWriter(\OC::$SERVERROOT); + $writer = new AssetWriter($assetDir); $writer->writeAsset($jsCollection); } $cssFiles = self::findStylesheetFiles(OC_Util::$styles); $cssHash = self::hashFileNames($cssFiles); - if (!file_exists("assets/$cssHash.css")) { + if (!file_exists("$assetDir/assets/$cssHash.css")) { $cssFiles = array_map(function ($item) { $root = $item[0]; $file = $item[2]; @@ -200,7 +201,7 @@ class OC_TemplateLayout extends OC_Template { $cssCollection = new AssetCollection($cssFiles); $cssCollection->setTargetPath("assets/$cssHash.css"); - $writer = new AssetWriter(\OC::$SERVERROOT); + $writer = new AssetWriter($assetDir); $writer->writeAsset($cssCollection); } diff --git a/lib/repair/assetcache.php b/lib/repair/assetcache.php index d7677a10d11..1bc2b91ad86 100644 --- a/lib/repair/assetcache.php +++ b/lib/repair/assetcache.php @@ -22,7 +22,7 @@ class AssetCache extends BasicEmitter implements \OC\RepairStep { $this->emit('\OC\Repair', 'info', array('Asset pipeline disabled -> nothing to do')); return; } - $assetDir = \OC::$SERVERROOT . '/assets'; + $assetDir = \OC::$server->getConfig()->getSystemValue('assetdirectory', \OC::$SERVERROOT) . '/assets'; \OC_Helper::rmdirr($assetDir, false); $this->emit('\OC\Repair', 'info', array('Asset cache cleared.')); } |