I am using drupal_add_css()
and drupal_add_js()
to add CSS and JavaScript files to my Drupal site. I am doing this in a module called control so the function I'm using is called control_preprocess_page(&$vars)
.
But in my theme nothing is added!
At the point your CSS/JS is needed, you can call it with drupal_add_css/js. You can also use it in the hook_init(), if your module is used on every page.
Some pointers that might help:
1) Place your CSS/JS script in your theme folder. 2) In your node.tpl.php file use the following:
3) If you place your CSS in a sub folder, you will need the following code:
4) Refresh the cache at yousite.com/admin/settings/performance
5) Sometimes I find that I have to disable the theme at admin/build/themes and the re-enable it.
The reason these functions aren't working within the preprocess_page() function is that template_preprocess_page() (which is called first) has already formatted the structured content into variables $scripts and $styles. If you want to add additional js or css at the preprocess level, you need to regenerate those 2 variables, something like this:
Using drupal_add_js/drupal_add_css in hook_init, or a more precisely targeted function (eg, an alter hook, or nodeapi hook, if applicable), will avoid having to regenerate those variables.