前臺訪問樣式丟失布局錯亂問題解決

          發(fā)布時間:2022-11-25點(diǎn)擊次數(shù):2762

          問題出現(xiàn)

          使用DouPHP的時候訪問前臺有時候發(fā)出現(xiàn)前臺的樣式都丟失了,布局都不見了,如下圖

          造成這個問題,主要是由于DouPHP的模板編譯機(jī)制造成,由于DouPHP采用的Smarty模板引擎,會將模板文件編譯生成編譯緩存文件,然后用戶訪問的時候就會調(diào)取編譯緩存,實現(xiàn)網(wǎng)頁的最終瀏覽。但這個緩存是需要頁面被訪問后才生成的,比如單頁面的模板文件是page.dwt,那么用戶在訪問單頁面的時候系統(tǒng)就會先遍歷緩存目錄里是否已經(jīng)有這個模板文件的編譯緩存,如果沒有則生成。而生成操作,由于我們用的是絕對路徑,就是說編譯文件里寫入的路徑是絕對網(wǎng)址,比如“http://www.domian.com/theme/default/style.css”這樣的絕對路徑,而這個路徑的網(wǎng)址是通過瀏覽器地址欄實時獲取的。

          所以問題就出在這,有很多網(wǎng)站管理員會使用多個地址訪問網(wǎng)站,比如在服務(wù)器上調(diào)試,會直接使用服務(wù)器的內(nèi)網(wǎng)地址訪問網(wǎng)站,如果使用內(nèi)網(wǎng)地址訪問,那編譯緩存里就會記錄著內(nèi)網(wǎng)的地址,比如“http://127.0.0.1/theme/default/style.css”,這就造成管理員在內(nèi)網(wǎng)即使使用域名訪問網(wǎng)站也是正常的,因為他的環(huán)境是內(nèi)容,即使編譯緩存里記錄的是內(nèi)容地址,一樣可以正常顯示。但外網(wǎng)用戶訪問的時候訪問網(wǎng)站的時候里面的緩存地址是http://127.0.0.1/theme/default/style.css”這樣的,就無法找到文件了,就會造成前面說的樣式丟失問題。

          當(dāng)然,上述情況不僅局限于內(nèi)網(wǎng)和外網(wǎng)混著訪問,還出現(xiàn)在同樣類似的場景,總之就是多個地址可以訪問網(wǎng)站,都有可能造成這個問題。

          解決問題

          方法一,網(wǎng)站管理員使用正確的域名訪問網(wǎng)站后臺,然后點(diǎn)擊后臺右上角的“清除緩存”按鈕,清除后再使用正確的域名瀏覽一遍前臺,使之生成正確的編譯緩存。

          方法二,統(tǒng)一站點(diǎn)域名,盡量不要內(nèi)網(wǎng)和外網(wǎng)混著訪問,也不要是有一些臨時域名和正式域名混著訪問。

          方法三,通過DouPHP后臺-》系統(tǒng)設(shè)置-》站點(diǎn)網(wǎng)址,這里輸入正式域名,格式為:http://www.domain.com/,以斜桿結(jié)束,如果啟用https則以https://開頭,然后后續(xù)訪問后臺的時候一定也要是有這個域名,訪問后臺千萬不要一會使用這個域名一會使用另一個域名。

          多域名

          上述解決問題的方法,并不是說不允許一個網(wǎng)站有多個域名,比如很多網(wǎng)站會將多個域名指向同一個網(wǎng)站,這個操作是可以的,但無論是為了避免出現(xiàn)上述問題,還是出于多搜索引擎的優(yōu)化來說,都應(yīng)該將所有多出來的域名通過規(guī)則做301跳轉(zhuǎn)到主域名。

          主站蜘蛛池模板: 洞头县| 开原市| 全椒县| 井陉县| 宣城市| 涿鹿县| 巫溪县| 揭西县| 罗源县| 无锡市| 沂南县| 九寨沟县| 泗水县| 庆阳市| 锡林郭勒盟| 渭源县| 东光县| 闻喜县| 普陀区| 合肥市| 乌拉特前旗| 安福县| 朝阳市| 卢龙县| 斗六市| 两当县| 郑州市| 迁安市| 岳池县| 浦城县| 岗巴县| 江山市| 玛纳斯县| 揭阳市| 嫩江县| 赫章县| 麦盖提县| 禄劝| 拜泉县| 松滋市| 大英县|