我正在尝试创建一个以编程方式创建LESS文件的自定义模块。
我创建了一个菜单回调,它是一个文件。这是hook_menu()...
$items['sites/all/themes/universal/less/dynamic.css.less'] = array(
'page callback' => 'jobs_universal_lessvars',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK
);
这是回调。
function jobs_universal_lessvars(){
header('Content-type: text/css');
$output = '
@color: #4D926F;
body.notaclass {
color:@color;
}
';
print $output;
}
我称之为添加它。
function universal_preprocess_html(&$variables) {
drupal_add_css(drupal_get_path('theme','universal').'/less/dynamic.css.less');
}
我上传了一个与上述^^路径完全相同内容的静态文件,禁用了菜单回调,并正确处理/应用了该文件。当我尝试运行此模块时,处理后的“CSS”文件未包含在HTML中,我收到错误消息
LESS错误:加载错误:找不到 网站/所有/主题/通用/更少/ dynamic.css.less
在回答之前...
我明白了...它不是文件。但它“是”,对吗?我可以调用此函数并让它创建一个添加的新CSS文件,但它不符合模块的要求。帮我? :)以编程方式创建文件对我来说很新鲜!
答案 0 :(得分:0)
案件结束,我发现了这一点; https://drupal.org/node/2139603 - 这是一个Drupal“钩子”,它使LESS变量可用于包含的.less文件。
服务器上的文件通过文件系统相互交互,只有在浏览器请求时才会被解释为文件。
我将通过该Drupal挂钩以编程方式设置变量,而不是创建具有这些变量的.less文件。感谢大家的耐心,我的开发知识很窄!!