如何在 CakePHP 中有选择地从 Html->css 方法中删除 .css 扩展名?

How to remove .css extension from Html->css method selectively in CakePHP?

我正在从 php 文件 (custom2.php) 动态生成 css 并将其内容类型设置为 "text/css" 在客户端呈现 css view.This php 文件位于 webroot 目录内的 css 文件夹中。当我用完整路径加载它时效果很好。但是当我使用 Html 帮助程序加载 php 文件时。它会自动附加“.css”扩展名。因此,Apache 不会渲染 php 文件,默认情况下将其视为 css 文件..

当我用完整路径加载它时(它工作)像这样:-

<link rel="stylesheet" href="/Project1/css/custom2.php" />

但是当我以标准蛋糕php方式加载它时(它不起作用)像这样:-

echo $this->Html-css("$mycss");  
/* It loads file after adding .css extension(custom2.php.css) which i don't want */

我正在从控制器(索引操作)传递 php 文件,如下所示:-

$this->set('mycss','custom2.php');

但是,添加 css 扩展名是 Html 助手的默认行为,我希望它保持这样,除非我正在 linking 任何 php 文件。是否有任何内联方法可以 禁用 css 在特定 situation/condition 处生成扩展?

PS: 我想使用标准 cakephp 方法加载 css 以避免损坏 link 问题不同的控制器和视图。

您可以使用 $this->webroot 作为基础 url。所以在你的情况下

<link rel="stylesheet" href="<?php echo $this->webroot; ?>css/custom2.php" />

如果你想要完整的 url,试试这个

<link rel="stylesheet" href="<?php echo Router::url('/', true); ?>css/custom2.php" />