我有一个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,我可以在开发时查看资源?
答案 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
}],