我正在构建一个模块,让管理员可以选择在呈现每个页面时应包含的许多可选CSS和JS文件。
函数hook_init似乎是正确的位置,但是在hook_init页面上它说这实际上不是正确的方法:
要添加应存在于所有页面上的CSS或JS,模块不应实现此挂钩,而是在其.info文件中声明这些文件。
这不适用于我的情况,还是有更好的方法呢?
答案 0 :(得分:1)
这不适用于您的情况。只有当CSS和JS的包含不以任何条件为条件时才适用。
答案 1 :(得分:0)
我的问题是,如果有条件地添加css(在我的情况下是基于语言),则是聚合。 结果是启用聚合时未加载css。 仅阅读drupal_add_css的文档对我有很大帮助。 我有2个选择阻止此工作: 'every_page'设置为TRUE是因为我误解了它(我实际上希望在所有页面上使用它,但仅适用于某些语言) “ preprocess”的默认值为TRUE,它会导致css包含在聚集中,问题是,如果在创建聚合文件时未将其加载,则此后将不再加载。
解决方案是:drupal_add_css(path_to_theme()。'/css/language-override.css',array('weight'=> 101,'preprocess'=> FALSE));