【问题标题】:How to remove .css extension from Html->css method selectively in CakePHP?如何在 CakePHP 中选择性地从 Html->css 方法中删除 .css 扩展名?
【发布时间】:2017-05-15 09:52:44
【问题描述】:

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

当我使用完整路径加载它时(它可以工作),如下所示:-

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

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

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 助手的默认行为,我希望它保持不变,除非我链接任何 php 文件。是否有任何内联方法可以在特定情况/条件下禁用 css 扩展生成?

PS:我想使用标准 cakephp 方法来加载 css,以避免不同控制器和视图的链接断开问题。

【问题讨论】:

  • 你不能使用$this-&gt;Html-&gt;css()来做到这一点。
  • @AIPDTECH 那我该怎么办?

标签: php cakephp cakephp-2.6


【解决方案1】:

您可以使用$this-&gt;webroot 作为基本网址。所以在你的情况下

&lt;link rel="stylesheet" href="&lt;?php echo $this-&gt;webroot; ?&gt;css/custom2.php" /&gt;

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

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

【讨论】:

    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 2016-03-27
    • 2017-07-29
    • 2016-03-21
    • 1970-01-01
    • 2017-03-02
    • 2013-01-09
    • 2020-05-13
    相关资源
    最近更新 更多