跳转到内容

外观设置

外观设置允许管理员配置多个外部 CSS 样式表,这些样式表会自动注入到所有页面的 HTML <head> 中。这使您可以在不修改核心代码的情况下进行站点范围的外观自定义,类似于 Moodle 的外观自定义功能。

外观设置提供:

  • 外部 CSS 样式表:添加多个样式表 URL
  • 顺序控制:重新排序样式表以控制 CSS 级联优先级
  • URL 验证:自动验证 HTTP/HTTPS URL
  • 轻松管理:通过简单界面添加、删除和重新排序样式表
  • 全局应用:样式表自动应用于所有页面

有两种方式访问外观设置页面:

  1. 以管理员身份登录
  2. 导航到顶部导航中的 站点管理
  3. 点击站点管理菜单中的 “外观” 选项卡
  4. 点击外观部分中的 “附加 CSS”
  5. 您将被带到 /admin/appearance 的外观设置页面
  1. 以管理员身份登录
  2. 在浏览器中直接导航到 /admin/appearance

要添加新的 CSS 样式表:

  1. 导航到外观设置页面
  2. 点击 “添加样式表” 按钮
  3. 在文本输入字段中输入样式表 URL
  4. URL 必须是有效的 HTTP 或 HTTPS URL
  5. 点击 “保存更改” 以应用

样式表 URL 必须:

  • 协议:使用 http://https://(推荐 HTTPS)
  • 格式:有效的 URL 格式
  • 可访问性:公开可访问(不需要身份验证)
  • CORS:如果需要,具有适当的 CORS 标头

URL 示例:

https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css
https://example.com/custom-theme.css

系统在多个级别验证 URL:

  1. 字段级验证:使用 JavaScript URL 构造函数检查 URL 格式
  2. 服务器端验证:在保存前验证所有 URL
  3. 客户端验证:表单中的实时反馈

无效的 URL 将显示错误消息:“必须是有效的 HTTP 或 HTTPS URL”

样式表的顺序对于 CSS 级联优先级很重要。后面的样式表可以覆盖前面的样式表。

要在列表中较早移动样式表:

  1. 找到要移动的样式表
  2. 点击样式表旁边的 “向上” 按钮(↑)
  3. 样式表将向上移动一个位置
  4. 点击 “保存更改” 以应用新顺序

要在列表中较晚移动样式表:

  1. 找到要移动的样式表
  2. 点击样式表旁边的 “向下” 按钮(↓)
  3. 样式表将向下移动一个位置
  4. 点击 “保存更改” 以应用新顺序
  • 向上按钮:在第一个样式表上禁用(无法进一步向上移动)
  • 向下按钮:在最后一个样式表上禁用(无法进一步向下移动)
  • 活动按钮:在中间的样式表上启用

样式表按配置的顺序加载:

  1. 第一个样式表:首先加载,优先级最低
  2. 后续样式表:按顺序加载,每个都可以覆盖前一个
  3. 最后一个样式表:最后加载,优先级最高

这允许您:

  • 首先加载基础样式:基础样式表(例如,Bootstrap)
  • 其次加载主题覆盖:主题特定样式
  • 最后加载自定义:站点特定自定义(最高优先级)
1. Bootstrap CSS(基础框架)
2. 主题 CSS(主题覆盖)
3. 自定义 CSS(站点特定自定义)← 最高优先级

要删除样式表:

  1. 找到要删除的样式表
  2. 点击样式表旁边的 “删除” 按钮(垃圾桶图标)
  3. 样式表将从列表中删除
  4. 点击 “保存更改” 以应用

未配置样式表时:

  • 空状态消息:“未配置样式表。点击 ‘添加样式表’ 添加一个。”
  • 添加按钮:可用于添加第一个样式表
  • 无影响:页面将在没有附加样式表的情况下正常加载

样式表按以下顺序注入到 HTML <head> 中:

  1. Mantine 核心样式:基础框架样式(通过 @mantine/core/styles.css 导入)
  2. Highlight.js 样式表:代码高亮主题(主题感知)
  3. 附加 CSS 样式表:您配置的样式表(按配置顺序)← 新增
  4. 页面特定样式:任何页面特定样式

样式表在 HTML 中显示为:

<head>
<!-- Mantine 样式 -->
<link rel="stylesheet" href="/mantine-styles.css" />
<!-- Highlight.js 样式 -->
<link rel="stylesheet" href="/highlight-theme.css" />
<!-- 您配置的样式表 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://example.com/custom.css" />
<!-- 页面内容 -->
</head>
  • 使用 CDN:优先使用 CDN 托管的样式表以获得可靠性和性能
  • 仅 HTTPS:出于安全考虑使用 HTTPS URL
  • 压缩版本:使用压缩的 CSS 文件以获得更好的性能
  • 版本固定:考虑使用版本化的 URL 以获得稳定性
  • 逻辑顺序:从一般到特定对样式表进行排序
  • 文档:记录每个样式表的功能
  • 测试:在部署前测试样式表组合
  • 备份:记录您的样式表配置
  • 限制数量:避免添加太多样式表(影响页面加载时间)
  • 优化顺序:将最重要的样式表放在前面
  • 监控影响:添加样式表后检查页面加载性能
  • 使用异步:考虑对非关键样式表进行异步加载(未来功能)
  • 定期审查:定期审查并删除未使用的样式表
  • 更新 URL:保持样式表 URL 最新
  • 测试更改:在添加或重新排序样式表后测试外观
  • 版本控制:在文档中跟踪样式表更改

如果样式表未加载:

  1. 验证 URL 是否可访问(在浏览器中打开)
  2. 检查 URL 是否使用 HTTP 或 HTTPS 协议
  3. 验证 CORS 标头是否允许从您的域加载
  4. 检查浏览器控制台中的加载错误
  5. 验证样式表已保存且页面已刷新

如果样式未应用:

  1. 检查样式表顺序(后面的样式表覆盖前面的样式表)
  2. 验证 CSS 特异性(您的样式可能需要更高的特异性)
  3. 检查浏览器开发工具中的 CSS 冲突
  4. 确保样式表正在加载(检查网络选项卡)
  5. 验证样式表内容是否正确

如果收到无效 URL 错误:

  1. 确保 URL 以 http://https:// 开头
  2. 验证 URL 格式是否正确
  3. 检查 URL 中的拼写错误
  4. 在浏览器中测试 URL 以确保可访问
  5. 删除可能破坏 URL 的任何特殊字符

如果样式表顺序未持久化:

  1. 验证您在重新排序后点击了 “保存更改”
  2. 刷新页面以查看更新的顺序
  3. 检查更改是否已保存到数据库
  4. 验证您有管理员权限
  5. 检查系统日志中的错误

如果页面加载缓慢:

  1. 减少样式表数量
  2. 使用压缩的 CSS 文件
  3. 考虑合并样式表
  4. 使用 CDN 托管的样式表以获得更好的缓存
  5. 监控网络选项卡中加载缓慢的样式表
Ask DeepWiki
贡献 社区 赞助