国产又猛又爽又黄视频|在线观看人成视频免费|少妇高潮太爽了在线视频|911国产免费无码专区|特黄做受又大又粗又长大片|欧美一级二级免费在线观看|日日夜人人澡人人澡人人看免|欧洲午夜精品一级毛片在线播放

Discuz頻道列表和內頁出現(xiàn)緩存CSS混亂的解決方案

2014-08-06 09:42 欄目:技術開發(fā) 查看(24867)

??? ???雖然BBS在沒落,加上隨著windphp的沒落,很多人看衰DZ的前途,其實我覺得這些東西僅僅是個工具而已。比如dz做的不只是論壇,還可以是各種方式的WEB應用。
? ?? ? 我相信很多做DZ開發(fā)的都清楚,有的用戶需求就是需要各種個性的。比如不同頁面應用不同樣式的頭部和底部等等。而今天在實際開發(fā)過程中就遇到了一個非常詭異的問題。那就是頻道列表和內頁的CSS緩存輸出出現(xiàn)混亂。

? ?? ? 開始基本情況是這樣的:首頁(門戶首頁)應用一個獨立的頭部(引用路徑為common/headerindex.htm),門戶列表頁和內頁應用一個頭部(引用路徑為portal/list/header.htm),而論壇及其他的頁面的公共頭部就是引用默認的路徑下的,當然是經過修改的,路徑為common/header.htm。
? ?? ? 我相信如果是通常不使用緩存機制來說,這一切都將非常正常,而大家要知道DZ是應用了cache機制的。比如我們查看任意頁面的前端源代碼我們會發(fā)現(xiàn)css主體部分是形如data/cache/style_2_common.css?Oxl這種的,顯然這不是我們開發(fā)模板的時候創(chuàng)建的文件,而是程序根據我們開發(fā)的模板CSS寫入緩存后得到的。正常情況下,不同頁面除了這個主體CSS緩存外,還會有其他的。比如門戶列表頁應該還有”data/cache/style_2_portal_list.css?Oxl“格式的,門戶內頁還有”data/cache/style_2_portal_view.css?Oxl“格式的。具體的大家可以參考官方開發(fā)文檔關于CSS緩存機制,傳送門→→http://faq.comsenz.com/library/template/cache/cache_css.htm

? ???但就是上面看似非常正常的處理方式,卻得到了異常的結果:因為更新了開發(fā)模板的CSS樣式,我習慣用官方指導的extend_commons.css?;然后更新后臺緩存,后來發(fā)現(xiàn)文章內頁正文部分明顯有部分樣式顯示不出來,結果更新幾次緩存后又正常了,但列表頁又出現(xiàn)問題了??偠灾褪强偸怯幸恍K地方不正常,不能完全加載CSS。結果通過查看前端源碼,發(fā)現(xiàn)除了主體CSS緩存文件引用外,對于當前頁面的特征CSS緩存卻引用混亂,比如列表頁成了”data/cache/style_2_portal_view.css?Oxl”,內頁反而成了“data/cache/style_2_portal_list.css?Oxl”。

? ???在開發(fā)者群里面問童鞋們,有好心的童鞋提示說有CSS部分重復了,我就按照別人的經驗來檢查了,再者我以前同樣用dz開發(fā)的時候,引用不寫入主體CSS的其他CSS重復引用確實會造成這樣的現(xiàn)象。但我通過檢查后卻沒有發(fā)現(xiàn)出現(xiàn)了CSS重復的現(xiàn)象,然后就是糾結了好久,再去交流,顯然沒人理,我想也許大家沒有這么“巧合”地遇上這個問題。

? ???這個時候我就在考慮是不是DZ的緩存機制造成的,從而因為引用的路徑或者文件名稱也能導致奇葩的沖突。雖然對DZ的緩存機制有一些了解,但對于其內在的東西還是不了解,畢竟DZ實際上只是一個半開源的產品。結果我就通過各種各樣的測試,發(fā)現(xiàn)還真可能是這樣的問題引起的(之所以說可能,是因為我還沒完全從原理上完整的說明,只是推理而已)。

? ?? ?總之解決通過以下方式就解決了:把我新建的view_new.htm(內頁文章模板文件)、list_new(列表頁面文件),頭部引用由開始的portal/list/header.htm改為common/headerview.htmcommon/headerlist.htm?(其實這兩個文件就是的portal/list/header.htm副本),這樣以后就問題沒有出現(xiàn)了。
? ?? ? 這里分享一下我在沒辦法的情況下“瞎測試”的幾種失敗方式:
? ?? ? 1、把新增的CSS全部刪除,故障依然存在(排除CSS重復);
? ?? ? 2、把我修改的文件用默認的覆蓋(除了引用頭部處做修改),排除我自己開發(fā)這些文件的錯誤存在;
? ?? ? 3、把我開發(fā)的這些文件頭部引用改為引用默認的頭部文件發(fā)現(xiàn)恢復正常,而改回引用原來頭部路徑,但用默認頭部文件覆蓋那些頭部文件,卻錯誤依然發(fā)生;
? ?? ? 4、其實在這個過程做過很多偏SB一樣的測試……..

? ?? ???到了這里我的結論就是:出現(xiàn)這種情況可能是因為DZ的內部機制造成命名或者路徑命名對其加載CSS文件造成影響,從而我們通常開發(fā)過程中“正確”的方式在這里卻成為了“錯誤”。也許DZ官方可能把我們的這種“錯誤”提示過給我們開發(fā)者,但是不知道是不是我個人的原因沒有看到這樣的提示或者相關的文檔(官方的開發(fā)文檔我基本都看了個遍),由于不理解最DZ最核心的緩存作用機制,因此這里的結果也只能以“可能”下結論。

與我們的項目經理聯(lián)系
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流

轉載請注明出處:Discuz頻道列表和內頁出現(xiàn)緩存CSS混亂的解決方案 - 微構網絡
分享: