2016-06-01 2 views
0

Я пытаюсь добавить Bootstrap в существующий проект образца Джерси 2/JSP, используя this tutorial as a guide. Однако в консоли Chrome я все время получаю 404 ошибки для CSS Bootstrap, и стили не будут загружаться.Невозможно загрузить Bootstrap из локальной папки, используя Jersey 2 on Glassfish 4

Error in Google console

Я попытался добавить свойство в моем ResourceConfig:

property(ServletProperties.FILTER_STATIC_CONTENT_REGEX, 
      // "/(images|css)/.*"); 
      "/css/*") 

безрезультатно.

Вот мой заказ ResourceConfig

package com.xxx.jersey2.config; 

import org.glassfish.jersey.filter.LoggingFilter; 
import org.glassfish.jersey.server.ResourceConfig; 
import org.glassfish.jersey.server.mvc.jsp.JspMvcFeature; 
import org.glassfish.jersey.servlet.ServletProperties; 

public class CustomResourceConfig extends ResourceConfig { 
    public CustomResourceConfig() { 
     packages("com.xxx"); 
     register(LoggingFilter.class); 
     register(JspMvcFeature.class); 
     // it may be also jersey.config.server.mvc.templateBasePath 
     // property("jersey.config.server.mvc.templateBasePath", "/WEB-INF/jsp"); 
     property(JspMvcFeature.TEMPLATE_BASE_PATH, "/WEB-INF/jsp"); 
     // CSS and JS 
     // property(ServletProperties.FILTER_STATIC_CONTENT_REGEX, "/(static|(WEB-INF/css))/"); 
     property(ServletProperties.FILTER_STATIC_CONTENT_REGEX, 
       // "/(images|css)/.*"); 
       "/css/*"); 
    } 
} 

Мой web.xml

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation=" 
     http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

    <!--<display-name>Archetype Created Web Application</display-name>--> 

    <filter> 
    <filter-name>jersey</filter-name> 
    <filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class> 
    <!-- 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>com.xxx.sample-jersey2</param-value> 
    </init-param> 
    --> 
    <init-param> 
     <param-name>jersey.config.servlet.filter.forwardOn404</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>com.xxx.jersey2.config.CustomResourceConfig</param-value> 
    </init-param> 
    </filter> 

    <filter-mapping> 
    <filter-name>jersey</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <!--<welcome-file-list>--> 
    <!--<welcome-file>index.html</welcome-file>--> 
    <!--<welcome-file>index.htm</welcome-file>--> 
    <!--<welcome-file>movies.jsp</welcome-file>--> 
    <!--</welcome-file-list>--> 

</web-app> 

Мои JSP

<%@page contentType="text/html"%> 
<%@page pageEncoding="UTF-8"%> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<html> 
<head> 
    <title>Sandbox application</title> 
    <link rel="stylesheet" href="../../css/bootstrap.min.css"> 
    <!-- <script src="../js/bootstrap.min.js"></script> --> 

    <!-- Latest compiled and minified CSS --> 
    <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> --> 

    <!-- Optional theme --> 
    <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"> --> 

    <!-- Latest compiled and minified JavaScript --> 
    <!-- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> --> 
</head> 
<body> 
<h2>Listing Movies</h2> 
    <table class="table table-striped"> 
     <tr> 
      <th>Name</th> 
      <th>Starring</th> 
     </tr> 
     <c:forEach var="item" items="${it.movies}"> 
      <tr> 
       <td>${item.name}</td> 
       <td>${item.starring}</td> 
      </tr> 
     </c:forEach> 
    </table> 
</body> 
</html> 

И, наконец, структура проекта

Project structure

Любые идеи по этому вопросу будут очень признательны.
Благодаря

ответ

0

линии 7 вашему list.jsp должна быть

<link rel="stylesheet" href="../css/bootstrap.min.css"> 

вместо

<link rel="stylesheet" href="../../css/bootstrap.min.css"> 

Я думаю, что все пути относительны к WEB-INF, потому что WEB-INF и начальная загрузка ресурсы находятся в одной родительской папке, вам нужно только подняться на один уровень, прежде чем вернуться в/css или/js

Смежные вопросы