Discuz X的CSS載入機制

2022-09-01 03:45:11 字數 1265 閱讀 7346

首先,每個頁面都會載入以下兩個css,data/cache/style_1_common.css和data/cache/style_1_forum_index.css。

先講講這兩個檔名的命名規則:第乙個是整站通用的css,所以命名為common.css,然後前面的代號是你使用了哪套風格,所以style_1_common.css表示是第一套風格的共用的css;第二個是表示forum的index頁面風格,也就是論壇的首頁風格。

下面講一下那兩個css是如何生成的。

首先,那兩個css是程式生成的css快取,所以你要改css的話,不能直接改那兩個檔案,否則一更新快取,之前的改動就無效了。大家可以看到template對應的每套模板中,就拿自帶的default模板舉例吧,default模板中,帶有乙個common的資料夾,裡面有css檔案,common.css對應的就是生成快取的style_1_common.css檔案,style_1_forum_index.css對應的是module.css。

common.css沒有什麼特別之處,裡面也有css的說明,跟普通的css差不多。

大家開啟module.css,可以看到有這樣的說明,

/*

* group::index *

*//*

群組 index 模組使用的css

*//*

* end *

*/

/** group::index **/開始到/** end **/結束,說明是group頻道的index模組使用的css,也就是群組頻道對應的首頁模板將使用的css。

再舉個例子,/** misc::invite,group,forum::viewthread **/開始到/** end **/結束,說明是misc頻道的invite模組、group頻道的全部模組和forum頻道的viewthread模組使用的css。

ok,下面的大家可以參照這個學習一下,包括你想擴充套件他,都可以直接在裡面直接新增就可以。

下面講講快取css是如何生成的,common.css比較簡單,就是直接讀取,然後生成到data/cache目錄下。每個頻道模組獨立的css,會先將module.css在data/cache下生成乙個對應的風格id下的快取的css,然後當你訪問某個頻道時,會生成對應頻道下的css,此時,剛才介紹的那些標識就起作用了。程式會根據/** group::index **/和/** end **/這種標識,拆分出哪些頻道、哪些模組該需要哪些css。

程式部分就不介紹了,程式的**主要在source/class/class_template.php檔案處理,有興趣的同學可以深入研究一下。

Discuz X中SESSION機制例項詳解

在discuz x中一如繼往的,session 並沒有使用 php 自帶的 session 機制,而是系統的一套自帶的機制。在資料庫中可以看到有兩個 session 表 乙個是pre common adminsession,是管理員登入後台的 session 表 另乙個是 pre common se...

JVM載入機制

new 的過程到底做了什麼?首先jvm會進行載入,連線,初始化。在初始化前,類的資訊已經放在了方法區中並且static部分已經放入。在new的時候,才把obj放到堆中。並且這個時候,初始化屬性,初始化方法。for example class a private intmethod private s...

nodejs require 載入機制

require 路徑.副檔名 如果 路徑.副檔名 存在 執行載入 並 返回 否則丟擲異常 require 路徑 如果 路徑.js 存在 執行載入 並 返回 如果 路徑.node 存在 執行載入 並 返回 如果 路徑 package.json 存在 執行載入 package.json 中 main屬性...