header("Cache-Control: max-age=315360000"); header("Expires: " . date("D, j M Y H:i:s", strtotime("now + 10 years")) . " GMT"); header("Content-Type: " . $contentType); if ($contentType == "application/x-javascript") { $rawScript = $loader->script_raw(); if (APC_AVAIL === true) { apc_store(server(true), $rawScript, APC_TTL); } echo $rawScript; } else { $rawCss = ''; $cssResourceList = $loader->css_data(); foreach ($cssResourceList["css"] as $cssResource => $val) { foreach ($cssResourceList["css"][$cssResource] as $key => $value) { $crtResourceBase = substr($key, 0, strrpos($key, "/") + 1); $crtResourceContent = $loader->getRemoteContent($key); //Handle image path corrections (order is important) $crtResourceContent = preg_replace('/((url\\()([^\\.\\.|^http]\\S+)(\\)))/', '${2}' . $crtResourceBase . '${3}${4}', $crtResourceContent); // just filename or subdirs/filename (e.g) url(foo.png), // url(foo/foo.png) $crtResourceContent = str_replace("url(/", "url({$crtResourceBase}", $crtResourceContent); // slash filename (e.g.) url(/whatever) $crtResourceContent = preg_replace('/(url\\()(\\.\\.\\/)+/', 'url(' . $base, $crtResourceContent); // relative paths (e.g.) url(../../foo.png) $crtResourceContent = preg_replace_callback('/AlphaImageLoader\\(src=[\'"](.*?)[\'"]/', 'alphaImageLoaderPathCorrection', $crtResourceContent); // AlphaImageLoader relative paths (e.g.) // AlphaImageLoader(src='../../foo.png') $rawCss .= $crtResourceContent; } } //Cleanup build path dups caused by relative paths that already