鍍金池/ 問答/Java/ java后臺(tái)路徑重新映射問題

java后臺(tái)路徑重新映射問題

后臺(tái)寫一個(gè)控制層,然后路徑基本就是這樣:http://ip:端口/項(xiàng)目名/接口
我想要在后臺(tái)設(shè)置一個(gè)功能:?jiǎn)吻芭_(tái)訪問時(shí),路徑是這樣的http://ip:端口/項(xiàng)目名/項(xiàng)目名/接口,我后臺(tái)能夠配置映射路徑:路徑為:/項(xiàng)目名/項(xiàng)目名,時(shí),默認(rèn)轉(zhuǎn)為::/項(xiàng)目名,請(qǐng)問是在WebMvcConfigurerAdapter,這個(gè)配置類配置嗎,
@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/server/**")
            .addResourceLocations("classpath:/server/server/");
    super.addResourceHandlers(registry);
}

這樣感覺完全不起作用呢??!求解

回答
編輯回答
喵小咪

如果是接口,直接做controller就可以。addResourceHandlers是用于添加靜態(tài)資源的鏈接跳轉(zhuǎn)的。

例如靜態(tài)資源在 classpath:/static/ 目錄下的情況

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/")
                .setCachePeriod(24 * 60 * 60);
    }
    
}

用這種方式,可以將 classpath:/static/ 目錄下的內(nèi)容映射到 / 路徑下。
比如 /static 目錄下有個(gè) index.css,實(shí)際獲取的時(shí)候就可以 http://ip:port/index.css 這樣獲取


EDIT: 基于評(píng)論問題的補(bǔ)充。

按照評(píng)論方式,應(yīng)當(dāng)這么做:

@Value("${server.context-path}")
private String ctxPath;

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler(ctxPath + "/**")
            .addResourceLocations("classpath:/static/")
            .setCachePeriod(24 * 60 * 60);
    registry.addResourceHandler("/**")
            .addResourceLocations("classpath:/static/")
            .setCachePeriod(24 * 60 * 60);
}

比如我的context-path為abc,這樣的話,可以通過

http://localhost:8080/abc/abc/test.html
http://localhost:8080/abc/test.html

上面兩個(gè)鏈接訪問當(dāng)指定靜態(tài)資源

2018年5月18日 19:32