[英]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.