繁体   English   中英

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

[英]JSP page can't access/find relative resources like CSS, images

我正在尝试使用JSP创建一个简单的网页。 我的问题是,无论使用什么URL,都找不到作为图像或CSS的资源。

我的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文件夹的结构:

结构体

我不是使用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[] { "/" };
    }

}

我已经找到了很多与此主题相关的主题,但是没有人适合我。

请问如何解决?

您的项目结构是什么?

“所有静态文件(如HTML,css,javascript)都将直接放置在Web应用程序的根目录下。如果要确保这些文件的安全性,则需要将这些文件放置在WEB-INF目录下。”

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

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

使用mvc静态资源将您的静态资源映射到url上。

<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中就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM