我檢查過的同樣問題的解決方案都不適用於我。我使用的IntelliJ IDEA春天初始化程序,其中有一個明確的項目結構:SpringBoot無法解析靜態資源的路徑(404)
源:
---主營:
----------的java:
----- ----------- myproject:
------------------------------ config
- ----------------------------控制器
------------------- ----------- dao
------------------------------ model
--- ---------------------------服務
------------------------------ HibernateApplication.java
--------- resources:
---------------靜:
---------------模板
這裏HibernateApplication是主澆道類,一個由SpringBoot提供的標準@SpringBootApplication; 資源位於主要目錄下,並且,據我從其他的例子看,它作爲一個WEB-INF文件夾中。
在配置,有一個@Configuration類:
@Configuration
public class AppConfig {
@Bean
public InternalResourceViewResolver viewResolver(){
InternalResourceViewResolver resolver = new
InternalResourceViewResolver();
resolver.setPrefix("/resources/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
}
這裏是我的@Controller類:
@Controller
@RequestMapping("/")
public class ActorController {
@Autowired
private ActorService actorService;
@GetMapping
public String addActor(){
//actorService.addActor();
return "hello";
}
}
我使用的不是我在這裏的服務,所有的我想要做只是爲了讓他滾,並用「的hello.jsp」文件,該文件是在撒謊正是在資源/文件夾的靜態響應。其內容是死的簡單:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
Hello from Spring Boot!
</body>
</html>
以下是我application.properties:
spring.datasource.url =的jdbc:mysql的://本地主機:3306/sakila的
spring.datasource .username =根
spring.datasource.password =根
spring.jpa.hibernate.ddl-自動=創建降
security.basic.enabled =假
我的依賴性包括Tomcat的embded-碧玉,JSTL,的javax.servlet和所有必要的春天啓動的東西。然而,當我運行本地主機:8080 /我發現了一個白色標籤錯誤頁面意外404錯誤。如果我的路徑配置一樣
.setPrefix( 「/資源/」)。setSuffix( 「JSP」),它說,它無法解析 「/resources/hello.jsp」。如果我將前綴設置爲(「/ resources/static /」),則無法找到「/resources/static/hello.jsp」。
怎麼回事?即使我在該路徑上單擊Ctrl,Intellij也很容易解決此問題,並將其重定向到「資源」文件夾。
P.S.好的,我發現了一個問題:默認情況下,Intellij已經創建了這個「myproject」文件夾,並且裏面有runner類,我錯誤地開始在這個文件夾中添加新的包。現在我已經解決了這個問題,將所有包從這個文件夾移到'main'文件夾,只留下裏面的runner類的「myproject」文件夾。現在層次結構必須正常,但瀏覽器中仍然沒有返回視圖。
在路徑中嘗試刪除/資源並檢查爲彈簧啓動默認資源文件夾 – Automator1992