我有一个java Spring Boot应用程序,在我的控制器中使用百里香和模型。此外,我有templates
目录在我的资源,其中所有的.html
页位于。我的控制器
@Controller
@RequestMapping("/frontView")
public class FrontController {
private final CameraService cameraService;
public FrontController(CameraService cameraService) {
this.cameraService = cameraService;
}
@RequestMapping(value = "/firstCameraData", method = RequestMethod.GET)
public String dataListFromFirstCamera(Model model) {
cameraService.returnAllCars(model, "firstCamera");
return "firstCamera.html";
}
我认为。pom文件中唯一对确定问题有用的部分
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>de.qaware.maven</groupId>
<artifactId>go-offline-maven-plugin</artifactId>
<version>1.2.8</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadoc>false</downloadJavadoc>
</configuration>
</plugin>
</plugins>
</build>
我没有任何配置类为我的应用程序或胸里叶-我坚持的问题-本地一切都工作得很好。我的应用程序在Tomcat上本地运行,我可以看到localhost:8080/frontView/firstCameraData
页面很好,但是在.jar
文件中部署我的应用程序后,我得到了404 page not found
我认为问题是-当我的应用程序在服务器上运行时,它看不到resources/templates
目录。我知道它可能可以通过在.war
中重新包装应用程序并将我的。html文件放在webapp
目录中来解决,但我不想这样。是否有任何解决方案,将允许我让服务器看到目录是在.jar
格式?
实际上这不是.jar
或.war
包装的问题。我配置了头盔,在我的values.yaml
中我有默认路径…
corePath: /core
因此,为了让我的控制器工作它应该像这样完成
@Controller
@RequestMapping("/core/frontView")
public class FrontController {
private final CameraService cameraService;
public FrontController(CameraService cameraService) {
this.cameraService = cameraService;
}
@RequestMapping(value = "/firstCameraData", method = RequestMethod.GET)
public String dataListFromFirstCamera(Model model) {
cameraService.returnAllCars(model, "firstCamera");
return "firstCamera.html";
}
之后正确的链接是http://*****/core/frontView/firstCameraData
非常感谢@chrylis -谨慎乐观的帮助