博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tomcat 无法加载js和css 等静态文件的问题
阅读量:5942 次
发布时间:2019-06-19

本文共 1135 字,大约阅读时间需要 3 分钟。

 

  前段时间做了个网站,在本地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 的设置, 将地址指向实际的网站资源文件的地址。 回到页面重新测试,果然好了。
    刚开始不知道原因,各种测试,各种改代码,服务器相关的设置都改了一遍。知道真相之后,其实要解决非常简单。

 

 

转载地址:http://gfmtx.baihongyu.com/

你可能感兴趣的文章
技术剖析 | Axonius为什么能获得 2019 RSAC创新大奖
查看>>
「镁客·请讲」嘿蘑法王亮:用VR给青年艺术家创造更多机会 ...
查看>>
加拿大高等研究院宣布新的科研计划,Bengio、LeCun 任 AI 项目负责人 ...
查看>>
关于缓存命中率的几个关键问题!
查看>>
java的日历类
查看>>
mybatis 思维导图,让 mybatis 不再难懂(二)
查看>>
搭建百度unit2.0测试代码(Java)
查看>>
DOS常用命令详解
查看>>
监控haproxy的脚本
查看>>
单用户模式迁移home家目录
查看>>
Css常用操作——————分类
查看>>
Wrong permissions on configuration file, should not be world writable
查看>>
rabbitmq3.5.1 原理和集群安装
查看>>
linux中的rm 删除命令
查看>>
多功能PCIE交换机之三:PCIE非透明桥 cache一致性
查看>>
依赖属性之“风云再起”三
查看>>
9.1 正则介绍_grep(上);9.2 grep(中);9.3 grep(下)
查看>>
启动oracle em命令
查看>>
jquery option 动态 selected
查看>>
搭建简易堡垒机
查看>>