Spring调度程序servlet中静态资源的路径别名

时间:2013-09-28 16:51:47

标签: java spring spring-mvc

我有一个Spring Web应用程序,其中调度程序servlet仅用于静态文件。还有一个用于来自JavaScript的API调用的Jersey servlet,映射到另一个URL模式,与我的问题不太相关。

目前我的整个调度程序配置如下所示:

@Configuration
@EnableWebMvc
public class DispatcherConfig extends WebMvcConfigurerAdapter {

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

我的类路径中main.html下有一个www个文件。如果/main.html发出请求,则会正确提供该文件。大。

现在,我希望为//part和其他一些路径上的请求返回相同的文件。基本上,我想在这里使用某种路径别名,或者从路径直接映射到文件。我怎样才能实现它?

1 个答案:

答案 0 :(得分:1)

您可以使用容器的default servlet来提供static resources

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

可以使用以下命令定义从路径到文件的映射:

@Configuration
@EnableWebMvc
public class DispatcherConfig extends WebMvcConfigurerAdapter {
...

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/pathToStatic").setViewName("/static.html");
    }
...

}

上述映射会将/pathToStatic的请求转发给静态视图static.html