將eclipse下的jsp工程文件從windows移到ubuntu下時,部分css和js失效。

        最近在逐步使用ubuntu來替代windows,因此要將以前的一些代碼移植到ubuntu系統下,在將eclipse下的jsp工程文件移植時,出現了問題,編譯能通過,沒問題,可是在瀏覽器中顯示的時候,網頁佈局是亂的,很多css和js文件沒有呈現。
        先F12看看加載項沒有有出問題,沒問題,那些未能顯示的css和js文件都順利加載了的。
        會不會是ubuntu系統的問題?於是重新創建一個新的web工程項目,導入了一些別的js、css,發現這些js、css都能正常運行。
        那會不會是工程文件中有什麼配置有問題,於是再創建一個新的web工程文件,把原來的src和jsp、css、js等東西一股腦放進去,編譯,還是沒有效果。
        那看看加載的css和js的內容吧,沒準是沒加載完整呢?點開一看,立馬覺得不對勁。
在這裏插入圖片描述
        不應該是五顏六色的嗎?
        感覺是出了問題,但不知道問題出在哪裏,突然想起來,很久以前也出現過類似的問題,那次的原因是Filter作祟,這次會不會也是過濾器導致的?我這個頁面中是加了過濾器的,於是,反正也沒更明確的方法了,就把過濾器整個給刪了,清理一下瀏覽器緩存,再編譯一遍,正常。
在這裏插入圖片描述
這真是漂亮的色彩呀。
雖然問題定位在了過濾器上,但是究竟是過濾器的什麼配置導致了問題的出現。於是我在這個工程文件下,重新創建了一個Filter,經過比對,發現是過濾器初始化時的寫法不太一樣。
我的過濾器的聲明是這麼寫的

@WebFilter(filterName="LoginFilter",urlPatterns= {"/*"})

而自動創建的過濾器的聲明是這麼寫的。

@WebFilter("/LoginFilter")

我將過濾器改成了下面這種寫法,發現頁面能正常顯示了。urlPatterns= {"/*"},這句話意思是,所有以某某前綴爲前綴的請求都攔下來。第一種寫法默認全局攔截,而第二種寫法默認全局不攔截。
問題還沒有完全解決,還沒弄明白爲什麼全局攔截,部分放行就會出問題,不過折中的做法是,改成全局放行,選擇性的攔截。估計可能跟ubuntu和windows下的完全不同的文件系統有關。因此windows下沒有問題,ubuntu下就行不通了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章