亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring 5 添加靜態文件目錄webapp

Spring 5 添加靜態文件目錄webapp

搖曳的薔薇 2023-05-10 16:58:28
我有一個 Spring 5(不是 Spring Boot)Web 應用程序。我有一個輸出 html 的控制器。我輸出一個 HTML 字符串,它可以工作,但是 JS 內容的相對路徑不起作用。我將按如下方式布置我的結構:src    main       java       resources       webapp          css          js          img          WEB-INF          index.html    test       java       resources當我輸出我的 html 文本時,找不到所有相關位置:如果我調用: http://localhost:8080/myapp/controller ?{some parameters} 我會期望 http://localhost:8080/myapp/js/ myjsfile.js 會在那里。當我構建和部署 WAR 時,展開的 WAR 文件包含所有正確的代碼。所以我希望文件在那里并找到。但是,根據我一直在閱讀的內容,我希望可以以不同的方式提供靜態文件。所以,我有兩個問題:1) 從 Spring 5 Web 應用程序提供靜態文件的標準方式是什么?我是否以這種方式更改結構:  src    main       java       resources            static                css                js                img       webapp          WEB-INF          index.html    test       java       resources然后我假設我必須這樣做 webconfig: @Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer {    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry){        registry.addResourceHandler("/resources/**")        .addResourceLocations("static/js", "static/css", "static/img")       .setCachePeriod(31556926);    }}2) 或者,我可以使用現有結構然后更改 WebConfig 以添加這些靜態位置,如下所示:@Configuration@EnableWebMvcpublic class WebConfig implements WebMvcConfigurer {    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry){        registry.addResourceHandler("/webapp/**")        .addResourceLocations("/js", "css", "img")       .setCachePeriod(31556926);    }}但是如果將這些文件放在 webapp 下不起作用,我可以理解將它們移動到 /resources 如果這是標準的做事方式。所以,如果我能得到任何幫助,那會很好。只要有效,我都可以接受。謝謝!
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

嘗試使用 resources/static 文件夾來提供您的視圖文件。并將以下配置添加到您的 WebMvcConfigurer:


@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

    registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");

}

它將映射“/”URL 中請求的所有靜態文件以重定向到 resources/static 文件夾。


查看完整回答
反對 回復 2023-05-10
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

選項 1 是可行的方法,將您的文件夾放在資源目錄下(根據需要命名):


src/main/java/resources

    myStaticResourcesFolder

        css

        js

        img

然后就這樣做:


@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

    registry.addResourceHandler("/**") // map to whatever url you need

        .addResourceLocations("myStaticResourcesFolder/"); // 

}


查看完整回答
反對 回復 2023-05-10
  • 2 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號