我们在使用火狐或者谷歌查看元素的时候看见的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 系统解析与缓存存放: 其中可以使用下面的书写方法: /** forum::index,forum::forumdisplay **/ .archy_css {font: {FONTSIZE} {FONT};} /** 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 文件中,写在后面的替换前面的代码。 |
关于我们|手机版|小黑屋|地图|【道勤网】-www.daoqin.net 软件视频自学教程|免费教程|自学电脑|3D教程|平面教程|影视动画教程|办公教程|机械设计教程|网站设计教程【道勤网】 ( 皖ICP备15000319号-1 )
GMT+8, 2024-11-15 14:01