找不到样式表文件,使用Tomcat 7。

3
我正在使用Tomcat 7作为服务器,结合Servlets使用。如下图所示,我的目录结构
但是,当我访问 '/resources/js/bootstrap.min.js' 时,WebApp无法找到这个文件。
以下是位于WEB-INF文件夹中的index.jsp。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>WebStore</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
 <div class="container-fluid">
  <nav class="navbar navbar-default">
   <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
      <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span>
     </button>
     <a class="navbar-brand" href="/">WebStore</a>
    </div>
    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
     <ul class="nav navbar-nav">
      <li class="active"><a href="#">Home <span class="sr-only">(current)</span></a></li>
      <li><a href="#">Help</a></li>
      <li><a href="#">Contact us</a></li>
      <li><a href="#">About</a></li>
      <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Profile
        <span class="caret"></span>
      </a>
       <ul class="dropdown-menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li role="separator" class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li role="separator" class="divider"></li>
        <li><a href="#">One more separated link</a></li>
       </ul></li>
     </ul>
     <form class="navbar-form navbar-right">
     </form>
    </div>
    <!-- /.navbar-collapse -->
   </div>
   <!-- /.container-fluid -->
  </nav>
  <div class="row">
   <div class="col-md-2">
    <div class="panel panel-default">
     <div class="panel-heading">
      <h3 class="panel-title">Categories</h3>
     </div>
     <div class="panel-body">
      <ul class="list-group">
       <li class="list-group-item"><a href="#">Category1</a></li>
       <li class="list-group-item"><a href="#">Category2</a></li>
       <li class="list-group-item"><a href="#">Category3</a></li>
       <li class="list-group-item"><a href="#">Category4</a></li>
       <li class="list-group-item"><a href="#">Category5</a></li>
      </ul>
     </div>
    </div>
    <div class="panel panel-default">
     <div class="panel-heading">
      <h3 class="panel-title">Brands</h3>
     </div>
     <div class="panel-body">
      <ul class="list-group">
       <li class="list-group-item"><a href="#">Brand1</a></li>
       <li class="list-group-item"><a href="#">Brand2</a></li>
       <li class="list-group-item"><a href="#">Brand3</a></li>
       <li class="list-group-item"><a href="#">Brand4</a></li>
       <li class="list-group-item"><a href="#">Brand5</a></li>
      </ul>
     </div>
    </div>
   </div>
   <div class="col-md-8">
    <div class="col-md-4 col-xs-6">
     <div class="thumbnail">
      <a href="" class="commodity"> <img class="goodsPhoto" src="images/apple-iphone se 16gb-silver-450x350.png" alt="iPhone">
      </a>
      <div class="caption">
       <h5>iPhone SE 16Gb</h5>
       <p class="definition">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque dolorum maiores repellat, autem, veniam incidunt quam
        sed fugit eos expedita, optio.</p>
       <p class="pull-left price">352.15$</p>

      </div>
      <p class="text-right">
       <a class="btn btn-primary" href="">Add to bucket</a>
      </p>
     </div>
    </div>
    <div class="col-md-4 col-xs-6">
     <div class="thumbnail">
      <a href="" class="commodity"> <img class="goodsPhoto" src="images/apple-iphone se 16gb-silver-450x350.png" alt="iPhone">
      </a>
      <div class="caption">
       <h5>iPhone SE 16Gb</h5>
       <p class="definition">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque dolorum maiores repellat, autem, veniam incidunt quam
        sed fugit eos expedita, optio.</p>
       <p class="pull-left price">352.15$</p>

      </div>
      <p class="text-right">
       <a class="btn btn-primary" href="">Add to bucket</a>
      </p>
     </div>
    </div>
   </div>
   <div class="col-md-2">
    <div class="panel panel-default">
     <div class="panel-heading">
      <h3 class="panel-title">Information</h3>
     </div>
     <div class="panel-body">
      <ul class="list-group">
       <li class="info">In bucket: 9</li>
       <li class="info">Money: 15524$</li>
       <li class="info"><a href="#">My profile</a></li>
       <li class="info"><a href="#">My bucket</a></li>
       <li class="info"><a href="#">My wishlist</a></li>

      </ul>
     </div>
    </div>
    <div class="panel panel-default">
     <div class="panel-heading">
      <h3 class="panel-title">Tags</h3>
     </div>
     <div class="panel-body">
      <ul class="list-group">
       <li class="list-group-item"><a href="#">Tag1</a></li>
       <li class="list-group-item"><a href="#">Tag2</a></li>
       <li class="list-group-item"><a href="#">Tag3</a></li>
       <li class="list-group-item"><a href="#">Tag4</a></li>
       <li class="list-group-item"><a href="#">Tag5</a></li>
      </ul>
     </div>
    </div>
   </div>
  </div>
 </div>
 <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
 <!-- Include all compiled plugins (below), or include individual files as needed -->
 <script src="resources/js/bootstrap.min.js"></script>
</body>
</html>

这里是我的错误:

我的 web.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>WebAppTesting</display-name>
  <welcome-file-list>
    <welcome-file>/</welcome-file>
  </welcome-file-list>
</web-app>

当我点击这个错误时,Chrome会将我重定向到我的index.jsp文件。出了什么问题?

你尝试过查看浏览器的开发者工具网络选项卡(在Chrome中按F12)来查看服务器在被要求提供“bootstrap.min.js”时返回了什么吗? - Paweł Chorążyk
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Ігор Перегінець
是的,我已经查看过了,状态码是200。当我点击那个文件时,我可以看到bootstrap的源代码,但是当我点击错误时,它只会将我发送到我的索引文件。 - Ігор Перегінець
你能展示一下你的web.xml文件吗? - Piotr Reszke
我已经添加了web.xml。 - Ігор Перегінець
我从index.jsp中删除了除了我的css和js文件链接之外的所有内容。Chrome显示状态码200,但当我尝试打开我的文件时,它仍然显示我的index文件。这也会发生在css和js文件中。 - Ігор Перегінець
1个回答

0

我解决了我的问题。据我所知,当我输入localhost时,IndexServlet捕获请求,然后转发到/WEB-INF/index.jsp。然后,从jsp中,我链接到位于/resources/css/...的css文件。我不知道为什么,但是我的IndexServlet捕获了这个请求并将其转发到index.jsp,这就是为什么我收到了两个相同文件的原因。

另一个问题是:为什么servlet会捕获该请求? servlet上方有一个注释,如:@WebServlet("/")。没有"/"*来捕获所有请求。

谁知道,请告诉我发生了什么?

也许他将此链接(/resources/css/...)识别为PathInfo,这就是为什么他捕获了我所有的链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接