搜索
byadmin 發表於 2013-5-5 22:22:34 , 2572人已閱讀 , 0人回應
我們在使用火狐或者谷歌查看元素的時候看見的CSS的路徑是style_2_common.css或者style_2_forum_index.css這樣的形式,而在data下的template目錄下看到的確實2_2_common_block_thread.tpl.php形式,那Discuz模板的緩存和繼承到底是如何情況呢?

一、模板緩存

模板緩存存放:所有的模板緩存均被解析成php文件存放在 ./data/template 中,以 「數字_模板標示符組合.tpl.php」形式保存。如上面說的2_2_common_block_thread.tpl.php。

頁面緩存刷新原理:當開發者編輯過模板文件之後,Discuz! 模板解析器會匹配模板htm文件與緩存php文件的最後修改時間,如過模板html文件較新或無緩存文件,則更新或生成緩存,不新,則不採取任何動作。

手動刪除此目錄的緩存不會影響Discuz!系統的整體運行,Discuz! 模板緩存仍然會進行自動生成。

這個就是很多站長修改模板的時候修改了此目錄下文件,效果只能看見一下就消失的原因。

二、CSS緩存

CSS緩存存放:./data/cache/目錄中,以 「style_風格自增編號_應用入口關鍵字_所在頁面的mod值.css」形式保存。如開頭說的style_2_common.css或者style_2_forum_index.css。

自建新套系模板文件可以通過創建 ./template/archy_test/common/extend_common.css 或 extend_module.css 進行CSS擴展,其中這兩個文件的CSS樣式腳本會通過 Discuz! 模板解析將風格常量統一賦值進去併合將CSS腳本複製出來放入 ./template/default/common/common.css 和 module.css 所對應的緩存中去,方便站點運行時引用。

extend_module.css 系統解析與緩存存放:
其中可以使用下面的書寫方法:

  1. /** forum::index,forum::forumdisplay **/
  2.     .archy_css {font: {FONTSIZE} {FONT};}
  3. /** end **/
複製代碼
上面的寫法含義是:針對 forum 的 index 和 forumdisplay 追加一個自定義的CSS樣式 "archy_css" ,Discuz! 模板解析將會根據 forum::index 的關鍵詞將 mycss 分別追加在「./data/cache/style_2_forum_index.css」和「./data/cache/style_2_forum_forumdisplay.css」中(裡面的數字2,根據新增的風格編號而定)

這樣的寫法好處就是,不變更默認模板的情況下有效的擴展CSS,並可以很好的進行多站點移植,同時也可以保護模板的目錄不會暴露。

三、CSS 繼承規範

Discuz! X系列產品中 CSS 文件會在緩存時按照以下順序進行合併:

1、template/default/*.css 文件
2、當默認模版是非默認模版時,template/模版目錄/extend_*.css 文件 或 template/模版目錄/*.css
3、當某插件啟用時,source/plugin/插件目錄/template/extend_*.css 文件

因此非默認模版目錄中的 CSS 屬性將繼承默認模版中的 CSS 屬性,插件目錄中的 CSS 文件將繼承前二者的 CSS 屬性
CSS 自身的集成順序為:當 CSS 屬性名稱相同是,CSS 文件中,寫在後面的替換前面的代碼。


《本文轉至DZ官網》

收藏回覆 只看該作者 道具 舉報

Traffic Exchange Site
您需要登錄後才可以回帖 登錄 | 立即註冊

作者資訊

文章分類

SR數位設計工作室

  • 服務專線:03-3555-069


ECSHOP購物網站開發|接案說明|線上洽詢|隱私權政策|SR數位設計(CMS)

信箱:sr.design2011@gmail.com

, Processed in 5.236230 second(s), 44 queries , Gzip On.

Copyright © 2011-2014 Template By SR網頁設計清新部落風格

Core - DZ2.5 GMT+8, 2024-4-24 10:44

回頂部