跳到內容

外觀設定

外觀設定允許管理員配置多個外部 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
貢獻 社群 贊助