Я работаю над весенним загрузочным приложением с использованием угловой рамки. Я структурировали проект следующим образом:Весеннее загрузочное веб-приложение не служит статическому контенту
- SRC/главная/Java: пружинно-загрузочные файлы, контроллеры, инерционности
- SRC/основные/ресурсы: application.properties
- SRC/главная/приложение: " WebAPP»файлы, угловые, CSS, модули
для того, чтобы пружина служить статическое содержимое в/приложения я расширил класс WebMvcConfigurerAdapter переопределить метод addResourceHandlers:
@EnableWebMvc
@Configuration
@ComponentScan(basePackages = { "com.myapp.controller" })
public class WebMvcConfig extends WebMvcConfigurerAdapter {
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/",
"classpath:/resources/", "/" }; //src/main/webapp works by default
private static final String[] RESOURCE_LOCATIONS = { "classpath:/src/main/app/", "classpath:/src/main/app/" };
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!registry.hasMappingForPattern("/webjars/**")) {
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
if (!registry.hasMappingForPattern("/**")) {
registry.addResourceHandler("/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS).setCachePeriod(0);
}
if (!registry.hasMappingForPattern("/app/**")) {
registry.addResourceHandler("/app/**").addResourceLocations(RESOURCE_LOCATIONS).setCachePeriod(0);
}
}}
При попытке доступа угловую основной файл с помощью http://localhost:8080/app/app.html
я получаю ошибку HTTP 404. По какой-то причине, если переименовать папку/приложение в/веб-приложение Я могу предназначаться http://localhost:8080/app.html
. Я определенно пропускаю что-то, но не могу понять, что это. Спасибо
У вас есть 'src/main/app' под вашим приложением. Вы настроили Maven или Gradle для включения этого каталога? Более того, почему бы просто не следовать стандартным правилам Spring Boot для статического контента? – geoand
Я предлагаю прочитать справочник по загрузке весны (особенно те, которые уже сопоставлены по умолчанию) и использование webjars. В основном, что делает в вашем классе WebMvcConfig уже сделано Spring Boot, поэтому вы просто усложняете ситуацию. –
@geoand Да, я добавил исходный каталог 'src/main/app' в maven, используя build-helper-maven-plugin. Использование стандартного класса src/main/static и комментирования класса WebMvcConfig по-прежнему имеет ту же проблему. – user3278795