Решение: класс SpringWebConfig не был выбран, потому что он был в другом пакете, чем приложение.Как только я собрал их и немного подправил пути, все заработало как задумано.Последовал плохой гид по настройке пакета.Спасибо всем за помощь!
У меня есть приложение Spring, которое я пытаюсь настроить с аннотацией.На localhost при тестировании Spring возвращает HTML-страницы в src / main / resources / templates, но ничего, что я указал в моем файле config.java, не соблюдалось.Я также не могу заставить браузер загружать любые CSS-файлы в src / main / resources / static.Мне никогда не удавалось заставить эту вещь что-либо разрешить в WEB-INF.
Я прочитал около ста руководств по настройке аннотаций, конфигурации xml, и сегодня я перенастраивал это около десятка раз,Здесь также есть тонна тем, но ничего не помогло.Как будто ни одно из моих изменений в моем webconfig.java не вызывается вообще.
Настройка пути - это css файлы в src / main / resources / static и html в src / main / resources / templates.
Приложение:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
Springвеб-конфигурация:
@EnableWebMvc // mvc:annotation-driven
@Configuration
@ComponentScan({"config"})
public class SpringWebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("static/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/static/");
viewResolver.setSuffix(".html");
System.out.println("test");
return viewResolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable("WebInitializer");
}
}
Инициализатор сервлета:
public class WebInitializer {
public class MyWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {SpringWebConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
}
}
replaytemplate.html:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="ISO-8859-1"></meta>
<title>$title</title>
<link rel="stylesheet" href="/static/main.css" type="text/css"></link>
</head>
<body>
<div class="topnav">
<a class="active" href="#Patreon">Patreon</a> <a href="#Stats">Stats</a>
<a href="#Ladder">Ladder</a> <a href="#Tournaments">Tournaments</a> <a
href="#Adv. Search">Adv. Search</a> <a href="#Forum">Forum</a> <a
href="#Wiki">Wiki</a>
</div>
<ul>
<li>$ReplayID</li>
<li>$TimePlayed</li>
<li>$TimeUploaded</li>
<li>$GameLength</li>
<li>$Map</li>
<li>$P1URL</li>
<li>$P1Race</li>
<li>$P2URL</li>
<li>$P2Race</li>
</ul>
</body>
</html>
Я могу разрешить эту веб-страницу, но Chrome 404 в файле CSS,У меня аналогичные результаты с upload.html и dropzone.css.
Я просто хочу иметь возможность понять, что происходит и почему, и, похоже, я не могу найти никаких руководств, объясняющих, почему на springwebconfig.java не ссылаются, или где я 'm предназначено для размещения любого из файлов HTML или CSS.Я видел множество руководств по WEB-INF, но я никогда не смогу найти ссылки на те, которые нужно решить.Должен ли я иметь некоторые конфигурации XML в дополнение к этому?У меня есть настройка, которая теперь хорошо решает upload.html, но в chrome я получаю 404 при обращении к файлам css.
TL; DR Ничто в SpringWebConfig, похоже, не работает с viewresolver.Я должен переместить html-файлы в src / main / resources / templates для разрешения, и когда это происходит, я получаю 404 файла css, независимо от того, на что я изменяю href, похоже.Иногда, когда я изменяю href (я думаю, что иногда понимаю, что все правильно), в консоли eclipse ничего не отображается, он просто не применяет css и выдает 404 in chrome для файла css.В других случаях я получаю ошибку разрешения шаблона в Eclipse, а 404 в Chrome.
Редактировать: pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>continuum</groupId>
<artifactId>Continuum</artifactId>
<version>0.1.0</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>scelight</groupId>
<artifactId>Scelight</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.0.0.jre8</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.11.Final</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestone</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-milestone</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>