Jhipster 从外部目录服务静态资源

Jhipster 从外部目录服务静态资源,jhipster,Jhipster,从应用程序外部的目录中提供图像或任何其他静态资源(如css和javascript)的正确方式应该是什么 我曾经在SpringMVC应用程序中很容易实现这一点,方法是在xml配置中使用MVC:resources元素,或者扩展WebMVCConfigureAdapter并在Java配置中添加相应的资源处理程序,然后指定存储资源的文件系统路径 记住,据我所知,jhipster没有使用SpringMVC,我如何实现这一功能 我尝试在jhipster中配置Spring MVC,但引入dispatcherS

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

我曾经在SpringMVC应用程序中很容易实现这一点,方法是在xml配置中使用
MVC:resources
元素,或者扩展
WebMVCConfigureAdapter
并在Java配置中添加相应的资源处理程序,然后指定存储资源的文件系统路径

记住,据我所知,jhipster没有使用SpringMVC,我如何实现这一功能

我尝试在jhipster中配置Spring MVC,但引入
dispatcherServlet
只会导致应用程序中断(如预期的那样,对吧?),我仍然掌握Angular的窍门,因此我不确定解决方案是否是这样

提前谢谢

更新:


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

对于开发人员,只需将文件放在/src/main/webapp/yourdir/中,就可以提供它(假设它是一个公共静态资源)。对于生产,您需要将其添加到config/webconfig.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);
} 
/**
*初始化静态资源生产筛选器。
*/
私有void initStaticResourcesProductionFilter(ServletContext ServletContext,
枚举集disps){
调试(“注册静态资源生产过滤器”);
FilterRegistration.DynamicStaticResourcesProductionFilter=
servletContext.addFilter(“staticResourcesProductionFilter”,
新的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);
} 

多亏了Spring Boot的魔力,现在我知道您可以通过扩展
WebMVCConfigureAdapter
来配置与MVC相关的东西。因此,我创建了自己的配置类来覆盖相应的方法,在本例中是
addResourceHandlers
,它就像一个符咒


请注意,
@EnableWebMvc
是不需要的,否则您会弄乱JHipster前端。

我的问题是,我使用的是一个用户上传的图像存储库,它位于文件系统中的特定路径中,所以我无法移动它。这就是为什么我需要指出它,就像我以前使用SpringMVC一样。