tomcat 无法加载js和css 等静态文件的问题

系统 5133 0

 

  前段时间做了个网站,在本地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 的设置, 将地址指向实际的网站资源文件的地址。 回到页面重新测试,果然好了。

    刚开始不知道原因,各种测试,各种改代码,服务器相关的设置都改了一遍。知道真相之后,其实要解决非常简单。

 

 

tomcat 无法加载js和css 等静态文件的问题


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论