从外部目录

时间:2015-05-27 20:16:00

标签: jhipster

从应用程序外部的目录中提供图像或任何其他静态资源(如css和javascript)的正确方法应该是什么?

我曾经在Spring MVC应用程序中通过使用xml配置中的mvc:resources元素,或者通过扩展WebMvcConfigurerAdapter并在Java配置中添加相应的资源处理程序,然后指定文件系统来实现这一点存储资源的路径。

记住,据我所知,jhipster不使用Spring MVC我怎么能实现这个功能呢?

我尝试在jhipster中配置Spring MVC,但是引入dispatcherServlet只会导致应用程序中断(正如预期的那样,对吧?),我仍然得到了Angular的支持,所以我不确定是否解决方案就是这样。

提前致谢。

更新

在下面添加了我的解决方案。

2 个答案:

答案 0 :(得分:0)

对于dev,只需将文件放在/ src / main / webapp / yourdir /中,就应该提供它(假设它是一个公共静态资源)。对于生产,您需要将它添加到config / WebConfigurer.java中的静态过滤器:

/**
 * Initializes the static resources production Filter.
 */
private void initStaticResourcesProductionFilter(ServletContext servletContext,
                                                 EnumSet<DispatcherType> disps) {

    log.debug("Registering static resources production Filter");
    FilterRegistration.Dynamic staticResourcesProductionFilter =
            servletContext.addFilter("staticResourcesProductionFilter",
                    new StaticResourcesProductionFilter());

    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/index.html");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/images/*");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/fonts/*");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/scripts/*");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/styles/*");
    staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/views/*");
    staticResourcesProductionFilter.setAsyncSupported(true);
} 

答案 1 :(得分:0)

感谢Spring Boot的神奇之处,现在我知道你可以通过扩展WebMvcConfigurerAdapter来配置与MVC相关的东西。所以我创建了自己的配置类来覆盖相应的方法,在本例中为addResourceHandlers,它就像魅力一样。

请注意,不需要@EnableWebMvc,否则你会混淆JHipster前端。