【问题标题】:PHP generated CSS not taking effectPHP生成的CSS不生效
【发布时间】:2015-04-03 05:28:00
【问题描述】:

我有什么:

一个style-color.php 文档,动态写入/输出通常应用于我网站页面的 CSS 代码(注意:这是基于 WordPress 的网站的主题文件)。

我的问题:

该文件在本地完美运行,但在我的实时网站上却没有。通过消除过程,我想到的本地环境和实时环境之间的唯一真正区别是我已应用于实时环境的安全强化措施以及可能的 chmod 设置。

安全强化: 我已禁用各种安全强化措施,但无济于事。

chmod 设置: style-colors.php 包含在themes > some-theme-name > style-colors.php 中,各自的权限为755 > 755 > 644

我的问题:

关于权限或其他任何可能阻止style-colors.php 正常运行的事情,我是否忽略了任何明显的事情?

【问题讨论】:

  • 如果你不发布一些代码很难帮助你!
  • 您是否从您的 php 发送 css/文本标头 header(“Content-type: text/css”);?也许?
  • 如何加载style-colors.php 文件?它是否通过 <style> 标记内的 php 包含到页面中?还是通过<link> 标签在外部链接?您是否尝试过清除缓存(浏览器以及是否有任何类型的 wordpress 缓存)?
  • @DaveGoten 是的,没错。 header( 'Content-type: text/css;' ); url = dirname( __FILE__ ); $strpos = strpos( $url, 'wp-content' ); $base = substr( $url, 0, $strpos ); require_once( $base .'wp-load.php' );
  • 有时 wordpress(和其他框架)也可能缓存一些东西,例如样式表,是否有可以手动清空的缓存?它是您的浏览器缓存吗,它是否使用旧版本的 style-color.php 进行缓存?您的 php 文件是否有过期标头等?

标签: php css wordpress chmod


【解决方案1】:

试试这个代码吧。

    <?php
    $root = dirname(dirname(dirname(dirname(dirname(__FILE__)))));
    if ( file_exists( $root.'/wp-load.php' ) ) {
        require_once( $root.'/wp-load.php' );
    } elseif ( file_exists( $root.'/wp-config.php' ) ) {
        require_once( $root.'/wp-config.php' );
    }
    header("Content-type: text/css");
    // start output buffer
    ob_start();


    $theme_color="#d5266c";
 ?>
    a:hover,
    a:focus{
        color:<?php echo $theme_color;?>;
    }

【讨论】:

  • 设置“Content-type”标题的好点 - 这解决了我的问题!但是 ob_start() 到底是怎么回事? “echo ob_get_clean()”在哪里?
猜你喜欢
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 2012-07-13
  • 1970-01-01
  • 2013-10-28
  • 2014-06-01
  • 2019-10-22
  • 2012-06-04
相关资源
最近更新 更多