Webpack - 在开发中提供外部静态资源

时间:2018-04-23 17:06:06

标签: spring webpack jhipster

我有一个Jhipster(4.14.3)应用程序,其中图像从@Scheduled cron上的第三方源下载,并作为静态资源提供。使用mvnw -Pdev,webpack&运行项目以进行开发时yarn start,图片无法访问。打包和执行战争时,资源可按预期获得。 mvnw package -Pdev -DskipTests && java -jar target\foo-0.0.1-SNAPSHOT.war

localhost:8080/images/FOO/someimage-0.png:作品
localhost:9000/images/FOO/someimage-0.png:无法获取/images/FOO/someimage-0.png

我已经为外部资源设置了下面的资源处理程序。所有远程图像都下载到此目录。

    @Configuration
    public class StaticResourceConfiguration extends WebMvcConfigurerAdapter {    
    @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
        String s = Paths.get(System.getProperty("user.home"), "images").toString() + File.separator;
        registry.addResourceHandler("/images/**")
            .addResourceLocations("file:///" + s);
        }
    }

从数据库中提取图像位置,并显示: <img [src]="entry.photo.location"> =&gt; &#39; /images/FOO/someimage-0.png'

有没有办法配置Spring或Webpack,我可以在开发时查看资源?

1 个答案:

答案 0 :(得分:1)

基于它适用于端口8080但不适用于端口9000的事实,问题在于Webpack代理。在文件webpack/webpack.dev.js中,将/images添加到代理配置中。这会将localhost:9000/images代理为localhost:8080/images

最终配置应如下所示:

    proxy: [{
        context: [
            '/images', // **Add this line**
            /* jhipster-needle-add-entity-to-webpack - JHipster will add entity api paths here */
            '/api',
            '/management',
            '/swagger-resources',
            '/v2/api-docs',
            '/h2-console',
            '/auth'
        ],
        target: 'http://127.0.0.1:8080',
        secure: false
    }],