我使用的是drupal 6.是否有任何方法在加载之前从页面中删除未使用的css(例如,从system.css)。未使用的css通过增加加载时间来降低我的网站性能。drupal删除未使用的css
0
A
回答
5
您将花费更多时间解析CSS,而不是仅仅加载文件。由于每个页面都有不同的结果CSS文件,因此您将失去正在缓存的CSS的任何好处。你最好简单地优化和压缩你的CSS,而不是试图在每次页面加载时解析它。
0
如果您的意思是说css没有使用,因为规则从未应用于任何页面,或者您在主题中覆盖它们,那么一种解决方案是完全排除违规样式表,并实现您希望在主题中使用的规则代替。
有几种方法可以做到这一点,包括style stripper module(我还没有尝试过),通过在template.php中取消设置变量或通过将system.css文件复制到主题中来实现最简单的方法(并且记住添加到theme.info),然后修剪你的心脏的内容。
此外,如果您的网站上有一些很少访问的网页类别的规则未在别处使用(例如管理页面),则可以考虑将这些规则放在单独的文件中并有条件地将它们与主题相关联。
0
0
对于D7可以使用hook_css_alter
从http://drupalcode.org/project/tao.git/blob/HEAD:/template.php
<?php
/**
* Implements hook_css_alter().
* @TODO: Once http://drupal.org/node/901062 is resolved, determine whether
* this can be implemented in the .info file instead.
*
* Omitted:
* - color.css
* - contextual.css
* - dashboard.css
* - field_ui.css
* - image.css
* - locale.css
* - shortcut.css
* - simpletest.css
* - toolbar.css
*/
function tao_css_alter(&$css) {
$exclude = array(
'misc/vertical-tabs.css' => FALSE,
'modules/aggregator/aggregator.css' => FALSE,
'modules/block/block.css' => FALSE,
'modules/book/book.css' => FALSE,
'modules/comment/comment.css' => FALSE,
'modules/dblog/dblog.css' => FALSE,
'modules/file/file.css' => FALSE,
'modules/filter/filter.css' => FALSE,
'modules/forum/forum.css' => FALSE,
'modules/help/help.css' => FALSE,
'modules/menu/menu.css' => FALSE,
'modules/node/node.css' => FALSE,
'modules/openid/openid.css' => FALSE,
'modules/poll/poll.css' => FALSE,
'modules/profile/profile.css' => FALSE,
'modules/search/search.css' => FALSE,
'modules/statistics/statistics.css' => FALSE,
'modules/syslog/syslog.css' => FALSE,
'modules/system/admin.css' => FALSE,
'modules/system/maintenance.css' => FALSE,
'modules/system/system.css' => FALSE,
'modules/system/system.admin.css' => FALSE,
'modules/system/system.base.css' => FALSE,
'modules/system/system.maintenance.css' => FALSE,
'modules/system/system.menus.css' => FALSE,
'modules/system/system.theme.css' => FALSE,
'modules/taxonomy/taxonomy.css' => FALSE,
'modules/tracker/tracker.css' => FALSE,
'modules/update/update.css' => FALSE,
'modules/user/user.css' => FALSE,
);
$css = array_diff_key($css, $exclude);
}
您还可以在主题覆盖.INFO为D6和D7现在https://drupal.org/node/901062。
一些主题已经开发利用的.info用一些辅助和cssexclude键和hook_css_alter
<?php
function twitter_bootstrap_css_alter(&$css) {
//global $theme_key;
//$theme_path = drupal_get_path('theme', $theme_key);
$excludes = _twitter_bootstrap_alter(twitter_bootstrap_theme_get_info('exclude'), 'css');
$css = array_diff_key($css, $excludes);
}
function twitter_bootstrap_js_alter(&$js) {
$excludes = _twitter_bootstrap_alter(twitter_bootstrap_theme_get_info('exclude'), 'js');
$js = array_diff_key($js, $excludes);
}
function _twitter_bootstrap_alter($files, $type) {
$output = array();
foreach($files as $key => $value) {
if(isset($files[$key][$type])) {
foreach($files[$key][$type] as $file => $name) {
$output[$name] = FALSE;
}
}
}
return $output;
}
对性能的影响是低的,因为hook_css_atler不经常运行。
0
如果您熟悉节点JS,你也可以使用“查找未使用的CSS”:https://www.npmjs.com/package/find-unused-css
它仅支持HTML文件,并找出你的项目未使用的CSS。
相关问题
- 1. 删除Drupal的Css
- 2. drupal删除未使用的模块
- 3. 删除未使用的CSS选择器
- 4. 如何删除未使用的CSS行?
- 5. 删除未使用的js/css参考
- 6. 如何删除未使用的CSS/jQuery?
- 7. 在css中删除未使用的类
- 8. 删除未使用的CSS代码
- 9. 如何正确删除drupal未使用的核心模块?
- 10. Drupal - 删除RSS
- 11. 删除未使用的ViewControllers
- 12. 删除未使用的CSS链接和JavaScript脚本的
- 13. WordPress的主题 - 删除未使用的css
- 14. 删除CSS样式表中未使用的选择器?
- 15. 在飞行中删除未使用的CSS?
- 16. 如何删除未使用的CSS,但保留评论?
- 17. 删除未使用的CSS与React和Webpack
- 18. 自动从项目中删除未使用的CSS
- 19. 从网站代码中删除未使用的CSS
- 20. 从响应页面中删除未使用的CSS
- 21. 轻松删除未使用的css属性
- 22. 如何通过Chrome查找和删除未使用的CSS
- 23. 从项目中自动删除未使用的CSS类
- 24. 需要从Drupal MySQL数据库中删除未引用的行
- 25. 任何删除未使用的CSS和保存新的CSS文件的插件?
- 26. 删除URL路径/ Drupal的
- 27. 删除CSS:用jQuery
- 28. 删除“除尘选择器”以外的未使用的CSS选择器?
- 29. 删除不需要的CSS使用uncss
- 30. 脚本 - 删除未使用的引用
你怎么确定有没有使用的CSS?是因为Page Speed或YSlow在抱怨吗? – mpdonadio 2011-05-03 13:15:40
雅我发现它通过Page Speed – ArK 2011-05-04 04:46:00