Drupal Cache&样式表开关

时间:2009-10-18 04:16:29

标签: drupal

我正在使用一个非常简单的样式表开关。它一直很好,但几天前我打开缓存模式,现在它只适用于登录用户。如果关闭缓存模式,它将再次对两个用户起作用。

基本上代码看起来像这样

在page.php标题中

  <?php
    if(isset($_COOKIE['style'])){
      $style=$_COOKIE['style'];
    } else {
      $style='green';
    }
  ?>
  <link type="text/css" rel="stylesheet" href="/css/<?php echo $style ?>.css">

切换

<a href="http://www.mydomain.com/switch.php?style=blue">Blue</a>

在switch.php中

<?php setcookie('style', $_GET['style'], time()+31536000);
header('Location:'.$HTTP_SERVER_VARS['HTTP_REFERER']);
?>

我做了很多研究,但找不到正确的方法。如果可以的话请帮忙。谢谢

2 个答案:

答案 0 :(得分:2)

嗯,我不明白为什么你不能像http://www.alistapart.com/articles/alternate/那样只使用客户端风格的切换器。还有其他方法可以完全实现客户端,但要求整个新页面切换样式似乎有点过分。

此外,缓存会创建一个静态页面来代替为每次点击动态创建一个新页面,因此缓存页面可能会被提供给任何未获得样式切换的人。

答案 1 :(得分:0)

根据我的理解/经验标准drupal缓存仅适用于未登录的用户。至少有一个模块允许经过身份验证的用户缓存,但它不在Core,authcache中: http://drupal.org/project/authcache

一篇解释druapl缓存技术的旧文章。还有一些很好的信息:http://n0tablog.wordpress.com/2007/11/19/drupal-caching/