drupal_add_css无法正常工作

MrF*_*dge 7 php drupal drupal-6

我需要使用drupal_add_css将样式表调用到单个Drupal 6页面上.我不想编辑主题样式表,因为会有一组单独的页面都需要全新的样式 - 如果我把它全部放在那里,主表将是巨大的.

我的解决方案是在PHP编辑器模式下编辑页面并执行以下操作:

<?php 
drupal_add_css("/styles/file1.css", "theme");
?>

<div id="newPageContent">stuff here in html</div>
Run Code Online (Sandbox Code Playgroud)

但是当我查看源代码时,那里什么都没有!甚至没有破坏的CSS链接或任何东西,它只是拒绝将CSS表添加到放入页眉的CSS包中.

变化似乎也不起作用:

drupal_add_css($path = '/styles/file1.css', $type = 'module', $media = 'all', $preprocess = TRUE)
Run Code Online (Sandbox Code Playgroud)

我的模板标题看起来像这样,除了添加自定义JavaScript之外,我没有更改默认设置.

<head>
    <?php print $head ?>
    <title><?php print $head_title ?></title>
    <?php print $styles ?>
    <?php print $scripts ?>
    <script type="text/javascript" src="<?php print base_path() ?>misc/askme.js"></script>    
    <!--[if lt IE 7]>
      <?php print phptemplate_get_ie_styles(); ?>
    <![endif]-->
</head>
Run Code Online (Sandbox Code Playgroud)

为什么这个功能不起作用?

Jer*_*nch 7

您在选择示例中的模板的位置并不十分清楚.如果从模块中选择它,则可以在模块中使用drupal_add_css而不是模板.

如果您有自己的主题,可以使用template_preprocess_page并在其中放置逻辑以添加相关的CSS(您也可以使用它来选择要使用的模板).

  • 另外需要注意的是,如果你将template_preprocess_page与drupal_add_css()一起使用,请确保将其强制添加到样式数组中,如下所示:`drupal_add_css(path_to_theme()."/ css/page.css","theme"); $ vars ['styles'] = drupal_get_css();` (8认同)

小智 6

我注意到一些奇怪的东西,它可能会解决你的问题:

drupal_add_css( drupal_get_path('theme','themname') . '/working.css','module' ,'all' , false );

drupal_add_css( drupal_get_path('theme','themname') . '/path/to/folder/notworking.css','module' ,'all' , false );
Run Code Online (Sandbox Code Playgroud)

第一个将工作,因为它在主文件夹中的样式第二行将无法工作,因为样式在子文件夹中!

编辑:

我认为它没有用,因为我没有正确地写出样式文件的路径:S所以请忽略我的答案

drupal_add_css( drupal_get_path('theme','test') . '/pages/subpage/style.css','theme');
Run Code Online (Sandbox Code Playgroud)

工作中


MrF*_*dge 2

答案是非常需要使用CSS Injector模块 - 很棒的小插件!

以下是其项目页面的摘录:

允许管理员根据可配置的规则将 CSS 注入到页面输出中。它对于添加简单的 CSS 调整而不修改网站的官方主题非常有用。CSS 使用 Drupal 的标准 drupal_add_css() 函数添加,并尊重页面缓存等。2.x 分支利用 CTools,因此 CSS 可以包含在功能更改中(即,可以将改善视图外观的 CSS 与视图打包在一起) )。