gpt4 book ai didi

css - 在 Moodle 类(class)格式插件中注入(inject) CSS

转载 作者:行者123 更新时间:2023-11-27 23:56:30 25 4
gpt4 key购买 nike

我正在为 Moodle 编写所谓的“格式插件”。此插件的输出需要使用存储在文件 styles.css 中的 CSS 样式,该文件是插件的一部分。不幸的是,由于严格的缓存,更改不会在屏幕上更新。通过启用“主题设计模式”(站点管理 > 外观 > 主题设置)可以避免这种情况,但 Moodle 会变得非常慢 - 使用它要慢得多。

“事件插件”等其他插件类型允许自定义定义,例如 $PAGE->requires->css( '/path/to/my/custom.css');后跟写入 HTML header 的命令 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);
}

现在,我正在寻找一种替代方法来注入(inject) <link href="/path/to/my/custom.css">使用 PHP 进入 HTML。

最佳答案

坚持使用 styles.css,无需启用设计模式,但每当您需要从 Moodle 元素的根目录运行时重建 css/主题缓存:

$ php admin/cli/purge_caches.php

清除 Moodle 缓存后,Moodle 将重建并提供更新后的 css(只有第一个请求会很慢),但不要忘记您可能还需要清除浏览器缓存。

总结:更新 css,清除 Moodle 缓存,浏览器“硬”刷新。

关于css - 在 Moodle 类(class)格式插件中注入(inject) CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56235405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com