drupal 7 移除自带的 css 和 javascript 及 jQuery.extend(Drupal.settings,
不论是drupal 7还是drupal 8, 创建主题时,默认带有大量的css和 javascript文件。这些后台的css和javascript 严重影响了性能,甚至会和主题产生冲突,并且,不美观,试问,一个网页突然多了20多个js引用,谁看了也会不舒服,更重要的我们希望掌控一切,而不是充斥着大量不想要的内容,于是想办法移除这些资源,让其不显示在网页上。查阅drupal 7 的文档,知道有 theme_css_alter 和 theme_js_alter两个方法可以过滤css 和javascript。还有这玩意:
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"littleblog","theme_token":"XrVlQdHzCCFBwkNmu2XO1RQiFInfhIwjNH2ldq5cLSw","js":[]},"urlIsAjaxTrusted":{"\/node?destination=node":true}});
//--><!]]>
</script>
使用方法,在主题根目录下创建一个:template.php 文件,加入以下代码,整个世界都清静了,网页再也没有多余的css或javascript文件资源了,对网页加载速度是有好处的。
//过滤自带的css function littleblog_css_alter(&$css) { foreach ($css as $c) { if (strpos($c['data'], 'modules/') !== false) { unset($css[$c['data']]); } } } //过滤自带的javascript文件 function littleblog_js_alter(&$js) { foreach ($js as $j) { if (is_string($j['data']) && (strpos($j['data'], 'misc/') !== false || strpos($j['data'], 'languages/') !== false)) { unset($js[$j['data']]); unset($js['settings']); } } }
更多阅读