?
前段時間做了個網站,在本地tomcat測試都沒有問題,但是部署到阿里云上之后,系統樣式全沒了。jsp等動態頁面訪問正常。
打開瀏覽器監控發現所有的css 和js 文件返回都是404 。直接訪問單個的css 文件也同樣是404。以為是路徑錯了,于是一一對了一遍各個文件的路徑和服務器上 tomcat路徑方面的設置
發現路徑沒有問題。在網站更目錄創建一個css文件和html文件均不能訪問。確認不是網站路徑的問題。
然后懷疑是tomcat 和 Apache 沖突了,或者可能是Apache 的設置不對。因為阿里云是默認的鏡像,里面已經裝了Apache和tomcat。也沒有做什么設置。
于是直接把Apache 服務停止。但是還是沒有用,依然無法訪問css 和html 頁面。
然后懷疑是不是服務器js 和css 這兩個文件的目錄權限有問題,查看了這兩個文件夾的權限。沒有問題,
而且在jsp文件能訪問的目錄,直接創建一個js 文件,同樣不能訪問。于是權限的懷疑被排除。
想了半天還是不知道到底是哪配置不對。然后突然想到所有的請求都是nginx 分發的。 是不是nginx 的配置不對。但是一想nginx 配置不對的話,那網站都不能訪問啊。為什么jsp 頁面能訪問而靜態文件不行。 帶著這個疑問,去查看下nginx的配置,打開nginx conf文件夾中的nginx.conf,果然發現了nginx配置可疑的地方。
server
{
listen 80;
server_name localhost;
index index.html index.htm index.jsp;
root /var/www/web/ROOT;
location ~ .*.jsp$
{
index index.jsp;
proxy_pass http://localhost:8080;
}
locattion *.jsp$ 的意思就是所有jsp的頁面均交由tomcat處理。
root 就是網站的資源存放路徑。
終于清楚了,服務器把所有的請求都是由nginx 轉發。nginx 會把 jsp 的請求轉給tomcat 來處理,
至于靜態資源的請求 nginx 直接就處理了,直接把資源文件返回給客戶端,無需tomcat 處理。
于是修改root 的設置, 將地址指向實際的網站資源文件的地址。 回到頁面重新測試,果然好了。
剛開始不知道原因,各種測試,各種改代碼,服務器相關的設置都改了一遍。知道真相之后,其實要解決非常簡單。
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
