JSP页面无法访问/查找CSS,图像等相关资源

时间:2016-04-04 14:24:25

标签: java html css jsp

我试图用JSP制作一个简单的网页。我的问题是没有找到像图像或CSS那样的资源,无论我使用哪个URL。

我的JSP非常简单:

<%@ 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>

我尝试了以下网址:

<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">

没有任何作用。

以下是我的src文件夹的结构:

structure

我没有使用web.xml而是使用java配置文件。

配置:

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;
    }

}

初​​始化程序

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[] { "/" };
    }

}

我已经找到很多关于这个主题的帖子,但是没有人适合我。

请问有什么解决方案?

3 个答案:

答案 0 :(得分:0)

您的项目结构是什么?

“HTML,css,javascript等所有静态文件都将直接放在Web应用程序根目录下。如果我们想让这些文件安全,我们需要将这些文件放在WEB-INF目录下。”

“所有JSP文件都可以直接放在根目录或WEB-INF文件夹的子文件夹内。当放在WEB-INF或其子文件夹中时”

答案 1 :(得分:0)

我认为具有webapps资源的文件夹,例如.html,.jsp文件以及css和js被错误地引用。检查文件夹路径。那应该是:<link href="path to your css folder/styles.css">

答案 2 :(得分:0)

使用mvc静态资源在网址上映射静态资源。

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

例如:

(xml conf)

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

(基于java的conf)

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

无论如何,将它们放在webapp中就足够了。