springboot templates目錄下的頁面文件訪問不到 static 目錄下的 jq 文件

springboot項目結構中,頁面(eg:.ftl )放在 templates 目錄下,靜態文件 (eg : .js) 放在 static 目錄下, 但是實際操作中發現 controller 訪問到 ftl頁面後, 找不到引用 static 目錄中的 jq 文件

然後開始了尷尬的一個早上。。。

如果你遇到了這個問題,你首先要想到要把 springboot 中訪問靜態資源的路徑映射到 static 目錄下, 對資源訪問做一個映射,然後去百度吧。。。

在 application.properties 文件中加入以下資源映射:

貼上項目結構,讓一起入門的小夥伴們看下結構,心理會踏實點 (我的目的就是要在 index.ftl 文件中訪問到 static/js 目錄下的jq文件):

其實好像添加上這個配置後就行了的。。。

你可以通過繼承 WebMvcConfigurerAdapter (這個類已經顯示 deprecated, 但是沒找到替代的新類 ), 實現 addResourceHandlers 方法添加對靜態資源訪問的路徑

如果你只是要引用jquery文件的話,可以通過 webjars 的形式, 在pom文件中 添加依賴

按 Ctrl+C 複製代碼

org.webjars
webjars-locator-core


org.webjars
bootstrap
3.3.7


org.webjars
jquery
3.1.1

按 Ctrl+C 複製代碼
  然後直接在 ftl 頁面中加入對所需文件的引用:

*************** 需要注意的點 : 添加webjars, 需要在 addResourcesHandlers 方法中, 把 /resources 目錄加上去 (這個導入jq文件後,看下jq文件的實際目錄就知道了)

最後加上springboot 整合 ftl 的配置:

複製代碼
spring.mvc.static-path-pattern=/static/**

spring.resources.static-locations=classpath:/static/

spring.freemarker.allow-request-override=false
#Enable template caching.啓用模板緩存。
spring.freemarker.cache=false

spring.freemarker.check-template-location=true

spring.freemarker.charset=UTF-8

spring.freemarker.content-type=text/html

spring.freemarker.expose-request-attributes=false

spring.freemarker.expose-session-attributes=false

spring.freemarker.expose-spring-macro-helpers=false

#spring.freemarker.prefix=

#spring.freemarker.request-context-attribute=

#spring.freemarker.settings.*=
#設置面板後綴
spring.freemarker.suffix=.ftl
複製代碼
  最後一個 freemarker.suffix 設置看訪問的頁面後綴了,這裏是 ftl 就設置成 ftl, 否則訪問不到

整合 freemarker , pom文件中加上

1
2
3

org.springframework.boot spring-boot-starter-freemarker

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章