【发布时间】:2019-07-23 21:45:14
【问题描述】:
我正在为 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 的方法。
【问题讨论】: