当我在服务器上部署war文件时,它并没有加载css和js文件,但是当我使用spring boot运行相同的代码时,它工作得很好。下面是加载js和css文件的目录结构和配置。有谁能告诉我问题是什么吗?仅使用基于java的项目配置。在部署项目之前,我已经参考了文档中的8.1.1,并使用了与下面相同的pom文件配置。
配置文件-
public class ViewWebAppConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// configuration for assets/ static files
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
public ResourceBundleMessageSource messageSource() {
ResourceBundleMessageSource rb = new ResourceBundleMessageSource();
rb.setBasenames(new String[] { "validation" });
return rb;
}
}
pom.xml文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<log4j.version>2.7</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Dependency for rendering jsp pages -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler</artifactId>
<version>5.5.23</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-runtime</artifactId>
<version>5.5.23</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler-jdt</artifactId>
<version>5.5.23</version>
<scope>provided</scope>
</dependency>
<!-- Dependency for rendering jsp pages -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
</dependencies>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<spring:url value="/resources/assets/js/custom.min.js" var="customJS" />
<script src="${customJS}"></script>
<link href="${customFieldAgent}" rel="stylesheet"/>
<spring:url value="/resources/assets/css/customfieldAgent.css" var="customFieldAgent" />
试试看,这对我很管用。
项目结构:
src/main/webapp/static/[css,js,images]
src/main/webapp/WEB-INF/views/[for all .jsp pages]
配置
@Configuration
@ComponentScan(basePackages = "parent package name where all packages reside")
public class ApplicationConfiguration extends WebMvcConfigurerAdapter {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
registry.viewResolver(viewResolver);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// when static resources are inside resources folder under WEB-INF
// registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/");
// when static resources are inside static folder under webapp
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}
}
import javax.servlet.Filter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { ApplicationConfiguration.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="<c:url value='/static/css/application.css' />" rel="stylesheet"></link>
</head>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
5.使用cmd重新启动tomcat。 “信息:部署web应用程序目录C:\apache-tomcat-7.0.77\webapps\MyProject Jun 07,2017 4:50:19 PM org.apache.catalina.startup.hostconfig deployDirectory信息:web应用程序目录C:\apache-tomcat-7.0.77\webapps\MyP
我正在使用Grails框架,当我创建一个war文件并将其部署到Tomcat-7上时,我得到了以下错误。但有时部署会成功。 2016年7月29日上午10:19:23org.apache.catalina.core.标准上下文启动内部严重:错误listenerStart 2016年7月29日上午10:19:23org.apache.catalina.core.标准上下文启动内部严重:上下文[]由于之前
我已尝试使用和批注。 我还尝试在pom.xml文件的标记中包含标记。 我还尝试将添加到 什么都不起作用 null null null user.java 点击URL应该会给出我们想要的输出,但结果却是404。而点击则会得到所需的输出。这意味着applicaiton没有读取application.properties文件,因为api的默认路由在该文件中设置为。
我收到了一些java代码和一个需要测试的web应用程序的WAR文件。 所以总的来说,我的问题是1将war和源代码加载到Eclipse2中的正确过程是什么。为什么Eclipse没有加载war文件
学习JSP,遇到CSS/JS内容无法加载的问题。我有一个jsp页面,在那里我有使用标准html链接和脚本标记引用的引导css和js: 它们都不起作用,Chrome在控制台上给了我以下内容: 如果我使用include指令,它适用于css,但会将所有内容拉入文件: jsp具有以下@page和元标记:
在我的Web应用程序项目中,我使用intellij的想法,并通过它运行apache tomcat 7。我已经将tomacat bin的路径变量设置为。当我运行它时,服务器无法部署war文件。我在想法中看到的最后一条消息是。 我发现了问题。当我用intellij思想运行tomcat7时,JRE_HOME被视为机器中的JDK路径 但是当我用命令提示符运行tomcat7时,它显示并成功部署war文件 那