2016-04-04 7 views
0

Ich versuche, eine einfache Webseite mit JSP zu machen. Mein Problem ist, dass keine Ressource als Bild oder CSS gefunden wird, egal welche URL ich verwende.JSP-Seite kann nicht auf relative Ressourcen wie CSS zugreifen, Bilder

Meine JSP ist so einfach wie folgt vor:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<!DOCTYPE html> 
<html lang="fr"> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="SHORTCUT ICON" href="img/logo.ico" /> 
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> 
    <link rel="stylesheet" href="/css/style.css"> 
</head> 
<body> 

     <div id="banner"> 
      <div id="banner-wrapper"> 
       <div id="appname"> 
        <a href="" > 
        <img alt="logo-cloudapi" height="50px" src="/logo.png"> 
        </a> 
        ABC 
       </div> 
       <div id="a"> 
        <img alt="logo2" height="50px" src="/logo2.jpg"> 
       </div> 
      </div> 
     </div> 
</body> 

ich folgende URL versucht:

<link rel="stylesheet" href="../css/style.css"> 

<link rel="stylesheet" href="/css/style.css"> 

<link rel="stylesheet" href="css/style.css"> 

<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css"> 

Nichts funktioniert. Hier

ist die Struktur meiner src Ordner:

structure

Ich bin nicht web.xml aber Java-Konfigurationsdateien verwenden.

Konfiguration:

package com.websystique.springmvc.configuration; 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.web.servlet.ViewResolver; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.view.InternalResourceViewResolver; 
import org.springframework.web.servlet.view.JstlView; 

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.websystique.springmvc") 
public class HelloWorldConfiguration { 
    @Bean 
    public ViewResolver viewResolver() { 
     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/views/"); 
     viewResolver.setSuffix(".jsp"); 

     return viewResolver; 
    } 

} 

Initializer

package com.orange.paddock.gofr.provider.ihm.configuration; 

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; 

public class HelloWorldInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class[] { HelloWorldConfiguration.class }; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return null; 
    } 

    @Override 
    protected String[] getServletMappings() { 
     return new String[] { "/" }; 
    } 

} 

Ich habe bereits festgestellt, viele Threads zu diesem Thema, aber niemand arbeitet für mich.

Was könnte die Lösung bitte sein?

+0

Legen Sie Ihre Ressourcen in resouces-Verzeichnis, so dass alle Dinge automatisch erreichbar (aka, auf Klassenpfad) und wird leicht gelöst werden. –

+0

Sie meinen den Ressourcenordner in src/main? Welche URL sollte ich verwenden, wenn ich sie dort ablege? – anais1477

+0

dann verweisen Sie es ebenfalls, css/something.css oder images.jpg –

Antwort

0

Ordnen Sie Ihre statischen Ressourcen auf einer URL mit statischen Ressourcen mvc.

<mvc:resources mapping="/resources/**" location="/resources/, /WEB-INF/static/" /> 

Zum Beispiel:

(xml conf)

<mvc:resources mapping="/css/**" location="/css/" /> 

(Java-basierte conf)

@Configuration 
@EnableWebMvc 
public class MvcConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry 
      .addResourceHandler("/resources/**") 
      .addResourceLocations("(/resources/");  
    } 
} 

Auf jeden Fall sollten sie innerhalb Webapp platzieren genug sein.

+0

Wo lege ich diese Zeile? – anais1477

+0

@ anais1477 Antwort bearbeitet –

0

Wie ist Ihre Projektstruktur?

"Alle statischen Dateien wie HTML, CSS, Javascript werden direkt unter dem Stammverzeichnis der Webanwendung platziert. Wenn wir diese Dateien sichern wollen, müssen wir diese Dateien im Verzeichnis WEB-INF ablegen."

„Alle JSP-Dateien können direkt in einem Stammverzeichnis oder in Unterordner von WEB-INF-Ordnern abgelegt werden. Wenn innerhalb WEB-INF oder deren Unterordner platziert“

+0

Ich habe das versucht.Ich lege alles in den Ordner WEB-INF, aber es funktioniert immer noch nicht – anais1477

0

ich den Ordner denke, dass die Webapps Ressourcen zB .html, .jsp Dateien sowie die css und js werden falsch referenziert. Überprüfen Sie Ihre Ordnerpfade. Das sollte funktionieren zB: <link href="path to your css folder/styles.css">

Verwandte Themen