You are here

Drupal 启用性能的CSS优化后不能访问的解决方法

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2009-12-07 15:12

我以前也遇到过同类的问题,我描述一下我遇到的问题,我的zhupou.cn在本地可以,但是在服务器上,也就是在线的站点上启用CSS优化后,就会出现一片空白,所以我一直没有启用CSS优化。这样的问题原因是由于权限的问题,在本地没有文件夹权限的问题,但是在虚拟主机上,保存合成CSS文件的文件夹,权限不够,这是我遇到的问题。

我的学员也遇到了同样的问题,不过它是在windows下面遇到的,这是它的解决办法:

在Drupal 6站点性能里开启页面缓存,一切正常,速度却实有不少提升;但再启用带宽优化中的“优化CSS文件”和“优化 JavaScript 文件”服务,整个站点就变成了,访问空白了。

解决方法:

找到 /includes/common.inc/

common.inc line 1967, function drupal_load_stylesheet

view sourceprint?1 if ($_optimize) { 

2       // Perform some safe CSS optimizations. 

3       $contents = preg_replace('< 

4         \s*([@{}:;,]|\)\s|\s\()\s* |  # Remove whitespace around separators, but keep space around parentheses. 

5         /\*([^*\\\\]|\*(?!/))+\*/ |   # Remove comments that are not CSS hacks. 

6         [\n\r]                        # Remove line breaks. 

7         >x', '\1', $contents); 

8     }

 

在1971行前加上"//",将其注释后,就可以将站点就回来。

view sourceprint?1 if ($_optimize) { 

2       // Perform some safe CSS optimizations. 

3       $contents = preg_replace('< 

4         \s*([@{}:;,]|\)\s|\s\()\s* |  # Remove whitespace around separators, but keep space around parentheses. 

5     //    /\*([^*\\\\]|\*(?!/))+\*/ |   # Remove comments that are not CSS hacks. 

6         [\n\r]                        # Remove line breaks. 

7         >x', '\1', $contents); 

8     }

 

保存,再访问网站就正常了,问题应该是CSS压缩算法上bug。
参考链接: http://www.360its.com/blog/0910286

http://drupalchina.org/node/7801

 

论坛: