在ubuntu中利用eclipse編譯jsp時,頁面佈局不完整的可能原因

現象描述

出現了以下的問題:

  1. 同樣的代碼在windows下運行,同樣的tomcat,是沒有任何問題的;
  2. 去掉我的filter過濾器,佈局也是沒有問題的;
  3. 谷歌瀏覽器中source一看,也都是加載了的;
  4. 谷歌瀏覽器中,preview一看,預覽中代碼顯示不完整;

原因分析

一開始走錯了方向,一直以爲是ubuntu中哪裏沒設置好,折騰了半天,後來才發現,其實問題已經非常之明確了。在F12中打開調試器,在source下,看見jsp頁面中有報錯。

Resource interpreted as Stylesheet but transferred with MIME type text/html: 

好吧,再回去看自己的代碼,果然,在我的filter中有一句:

		resp.setContentType("text/html;charset=UTF-8");

問題就出在這裏了,在過濾器中,我把所有的東西在經過過濾器以後,都設置成了"text/html"格式,這顯然是不對的。

解決方法

將下面這句代碼

		resp.setContentType("text/html;charset=UTF-8");

修改成:

        if(uri.contains(".jsp")) {
        	resp.setContentType("text/html;charset=UTF-8");
        }

意思就是,除了jsp頁面要在響應中設置類型位"text/html"外,別的,比如css和js以及一些圖片等別的格式,默認爲原類型,不做修改。

總結

其實問題很簡單,總結起來還是瀏覽器的控制檯用的不夠熟悉。多使用控制檯的source等功能,解決問題將事半功倍。
另外,在ubuntu和windows中確實存在差別,在windows下這都不是問題,同樣是谷歌瀏覽器,同樣是eclipse和tomcat,但是在windows下,加載css和js等就會默認使用原格式,而不會轉變成text/html等格式,但是在ubuntu下,就會轉過去。因此,在windows下一直沒發現這個bug,在ubuntu下就成了問題。

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