diff --git a/cake/libs/view/helpers/html.php b/cake/libs/view/helpers/html.php
index cb94089989b..016ea799fcb 100644
--- a/cake/libs/view/helpers/html.php
+++ b/cake/libs/view/helpers/html.php
@@ -349,9 +349,7 @@ function css($path, $rel = null, $htmlAttributes = array(), $inline = true) {
}
}
- $path = $this->webroot($path);
-
- $url = $path;
+ $url = $this->webroot($path);
if (strpos($path, '?') === false && ((Configure::read('Asset.timestamp') === true && Configure::read() > 0) || Configure::read('Asset.timestamp') === 'force')) {
$url .= '?' . @filemtime(WWW_ROOT . str_replace('/', DS, $path));
}
@@ -434,13 +432,15 @@ function getCrumbs($separator = '»', $startText = false) {
function image($path, $options = array()) {
if (is_array($path)) {
$path = $this->url($path);
- } elseif ($path[0] === '/') {
- $path = $this->webroot($path);
} elseif (strpos($path, '://') === false) {
- $path = $this->webroot(IMAGES_URL . $path);
+ if ($path[0] !== '/') {
+ $path = IMAGES_URL . $path;
+ }
if ((Configure::read('Asset.timestamp') == true && Configure::read() > 0) || Configure::read('Asset.timestamp') === 'force') {
- $path .= '?' . @filemtime(str_replace('/', DS, WWW_ROOT . $path));
+ $path = $this->webroot($path) . '?' . @filemtime(WWW_ROOT . str_replace('/', DS, $path));
+ } else {
+ $path = $this->webroot($path);
}
}
diff --git a/cake/libs/view/helpers/javascript.php b/cake/libs/view/helpers/javascript.php
index 9756d62ed8e..8fd735f6fad 100644
--- a/cake/libs/view/helpers/javascript.php
+++ b/cake/libs/view/helpers/javascript.php
@@ -214,11 +214,11 @@ function blockEnd() {
$options = $this->_blockOptions;
$this->_blockOptions = array();
$this->inBlock = false;
-
+
if (empty($script)) {
return null;
}
-
+
return $this->codeBlock($script, $options);
}
/**
@@ -254,14 +254,10 @@ function link($url, $inline = true) {
}
}
- $url = $this->webroot($url);
- $timestampEnabled = (
- (Configure::read('Asset.timestamp') === true && Configure::read() > 0) ||
- Configure::read('Asset.timestamp') === 'force'
- );
-
- if (strpos($url, '?') === false && $timestampEnabled) {
- $url .= '?' . @filemtime(WWW_ROOT . str_replace('/', DS, $url));
+ if (strpos($url, '?') === false && ((Configure::read('Asset.timestamp') === true && Configure::read() > 0) || Configure::read('Asset.timestamp') === 'force')) {
+ $url = $this->webroot($url) . '?' . @filemtime(WWW_ROOT . str_replace('/', DS, $url));
+ } else {
+ $url = $this->webroot($url);
}
if (Configure::read('Asset.filter.js')) {
diff --git a/cake/tests/cases/libs/view/helpers/html.test.php b/cake/tests/cases/libs/view/helpers/html.test.php
index 52dd5cbaf67..3b41dd1bc63 100644
--- a/cake/tests/cases/libs/view/helpers/html.test.php
+++ b/cake/tests/cases/libs/view/helpers/html.test.php
@@ -307,6 +307,16 @@ function testImageTagWithTheme() {
'src' => 'preg:/themed\/default\/img\/cake\.power\.gif\?\d+/',
'alt' => ''
)));
+
+ $webroot = $this->Html->webroot;
+ $this->Html->webroot = '/testing/';
+ $result = $this->Html->image('cake.power.gif');
+ $this->assertTags($result, array(
+ 'img' => array(
+ 'src' => 'preg:/\/testing\/themed\/default\/img\/cake\.power\.gif\?\d+/',
+ 'alt' => ''
+ )));
+ $this->Html->webroot = $webroot;
}
/**
* testStyle method
@@ -391,14 +401,14 @@ function testCssLink() {
$webroot = $this->Html->webroot;
$this->Html->webroot = '/testing/';
$result = $this->Html->css('cake.generic');
- $expected['link']['href'] = 'preg:/\/testing\/css\/cake\.generic\.css\?/';
+ $expected['link']['href'] = 'preg:/\/testing\/css\/cake\.generic\.css\?[0-9]+/';
$this->assertTags($result, $expected);
$this->Html->webroot = $webroot;
$webroot = $this->Html->webroot;
$this->Html->webroot = '/testing/longer/';
$result = $this->Html->css('cake.generic');
- $expected['link']['href'] = 'preg:/\/testing\/longer\/css\/cake\.generic\.css\?/';
+ $expected['link']['href'] = 'preg:/\/testing\/longer\/css\/cake\.generic\.css\?[0-9]+/';
$this->assertTags($result, $expected);
$this->Html->webroot = $webroot;
}
diff --git a/cake/tests/cases/libs/view/helpers/javascript.test.php b/cake/tests/cases/libs/view/helpers/javascript.test.php
index 7ebad00eb96..1fdfccf2151 100644
--- a/cake/tests/cases/libs/view/helpers/javascript.test.php
+++ b/cake/tests/cases/libs/view/helpers/javascript.test.php
@@ -262,11 +262,11 @@ function testFilteringAndTimestamping() {
$this->Javascript->webroot = '/testing/';
$result = $this->Javascript->link('__cake_js_test');
- $this->assertPattern('/^