0

有人可以告诉我当前在 CakePHP 2.x 的 CSS 文件中使用 PHP 的方法吗

我目前已将我的样式表分成一个 php 文件,并希望通过 URL 解析我的数据,但我似乎无法弄清楚如何使用链接它

$this->Html->css('dynamic-stylesheet')  

因为它总是将 .css 附加到名称中。

非常感谢您的帮助。

4

2 回答 2

3

您可以使用生成标签HtmlHelper::meta()

echo $this->Html->meta(array(
    'link' => '/css/test.php',
    'rel' => 'stylesheet',
    'type' => 'text/css'
));

请注意,您需要将其显式定向到/css目录,因为您不再使用专门用于 CSS 的辅助方法。

于 2013-01-07T11:06:18.470 回答
1

查看位于 lib/Cake/View/Helper/HtmlHelper.php 的 CakePHP 库中的 Html 帮助文件,查看第 427 行,看起来 .css 扩展名是自动设置的,除非 CSS 文件名中有两个斜杠。我猜那是为了捕捉外部资源?

从上述库文件中:

if (strpos($path, '//') !== false) {
    $url = $path;
} else {
    $url = $this->assetUrl($path, $options + array('pathPrefix' => CSS_URL, 'ext' => '.css'));

    if (Configure::read('Asset.filter.css')) {
        $pos = strpos($url, CSS_URL);
        if ($pos !== false) {
            $url = substr($url, 0, $pos) . 'ccss/' . substr($url, $pos + strlen(CSS_URL));
        }
    }
}

所以这..

echo $this->Html->css('http://whatever.com/css/dynamic-stylesheet.php');

将呈现 dynamic-stylesheet.php 文件,而不是默认为 'dynamic-stylesheet.css。

不确定这就是它的用途,但也许该文件会对您有所帮助。

于 2013-01-07T04:23:25.987 回答