2024国产成人精品免费视频|日本免费一区二区三区毛片|久久97超碰色中文字幕|亚洲天堂a中文字幕

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

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

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

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

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

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

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

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

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

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

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

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

轉(zhuǎn)載請注明出處:Discuz頻道列表和內(nèi)頁出現(xiàn)緩存CSS混亂的解決方案 - 微構(gòu)網(wǎng)絡(luò)
分享:
京山县| 永和县| 宽城| 界首市| 山东省| 浮山县| 枝江市| 香格里拉县| 武汉市| 岑巩县| 织金县| 阿克苏市| 孙吴县| 南安市| 泉州市| 浦江县| 霞浦县| 三原县| 江西省| 留坝县| 桐庐县| 文昌市| 福贡县| 达拉特旗| 综艺| 清镇市| 离岛区| 遵义市| 泗水县| 册亨县| 乳源| 永昌县| 舟曲县| 徐汇区| 宁国市| 扶绥县| 灵寿县| 高阳县| 将乐县| 朝阳区| 玉田县|