我想使用thymeleaf
製作頁面。但是我有一些靜態文件的問題。我正在調查問題(1,2,3),但它對我沒有幫助。用Thymeleaf加載Spring Boot中的靜態資源
我在應用程序中使用了一個Spring Boot
框架。 我的文件看起來像:
的test.html
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<script src="js/test.js" th:src="@{/test.js}"/>
</head>
<body>
<button onclick="testFunction('test value')">Button</button>
</body>
</html>
test.js
function testFunction(test) {
console.log(test);
}
配置類
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/js/");
super.addResourceHandlers(registry);
}
}
而問題,當我加載的JavaScript未加載test.html
文件。
@GetMapping(value = "web/test")
public String getTestHtmlPage() {
return "test";
}
/api/v1
是application.properties => server.servlet-path=/api/v1
我做的不對的配置?你可以幫我嗎?
謝謝大家!
您沒有包含test.js的錯誤...是404嗎?實際路徑應該是'test.js'而不是'js/test.js' –
是的,它是404錯誤。當我更改爲'時,響應狀態爲200,但在控制檯中出現一個新錯誤「拒絕執行腳本」 :// localhost:8080/api/v1/web/test.js',因爲它的MIME類型('text/html')不可執行,並且啓用嚴格的MIME類型檢查。「這是什麼意思? –
我不知道Thymeleaf,但看[docs](http://www.thymeleaf.org/doc/articles/standardurlsyntax.html)指出'th:href'適用於HTML內容。 Javascript不是HTML,所以你應該刪除'th:href'並將'src'改爲'th:src'。 –