我正在为Moodle写一个所谓的“格式插件”。该插件的输出需要使用存储在该插件一部分的文件styles.css中的CSS来作为样式。不幸的是,由于严格的缓存,更改未在屏幕上更新。通过启用“主题设计模式”(“站点管理员”>“外观”>“主题设置”),可以避免这种情况,但是Moodle的运行速度将变得异常缓慢-使用它的速度会大大降低。
其他插件类型(例如“活动插件”)允许自定义,例如
$PAGE->requires->css( '/path/to/my/custom.css');
之后是用于写入HTML标头echo $OUTPUT->header();
的命令。但是,这不适用于格式插件。 Moodle抱怨错误:“打印后不能要求CSS文件。”
在运行时使用AMD / Javascript调用加载CSS无效:
var link;
for(var i=0; i< css.length;i++){
link = document.createElement("link");
link.rel = "stylesheet";
link.type = "text/css";
link.href = css[i];
document.getElementsByTagName("head")[0].appendChild(link);
}
现在,我正在寻找一种使用PHP将<link href="/path/to/my/custom.css">
注入HTML的替代方法。
答案 0 :(得分:0)
使用Cannot insert row, some of the primary key values are missing. Got (8, 197, ), expecting (target_id, section_id, target_type)
粘贴,无需启用设计模式,但是每当需要重建从Moodle项目的根目录运行的css / theme高速缓存时:
styles.css
清除Moodle缓存后,Moodle将重建并服务于更新的CSS(只有第一个请求会很慢),但是请不要忘记您可能还需要清除浏览器缓存。
概述:更新CSS,清除Moodle缓存,浏览器“硬”刷新。