程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了无法从 React 前端访问上传的图像到 Spring Boot 后端大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决无法从 React 前端访问上传的图像到 Spring Boot 后端?

开发过程中遇到无法从 React 前端访问上传的图像到 Spring Boot 后端的问题如何解决?下面主要结合日常开发的经验,给出你关于无法从 React 前端访问上传的图像到 Spring Boot 后端的解决方法建议,希望对你解决无法从 React 前端访问上传的图像到 Spring Boot 后端有所启发或帮助;

目前我正在处理一个项目,我试图将图像从 react 前端上传到 Spring Boot 后端。我能够成功上传我的图像并将其存储在我的“target/classes/static/public/assets” 文件夹中。我还将路径存储在我的数据库中,即"/public/assets/image_name.jpg"。在我尝试访问图像时构建 ".jar" 文件后,它给了我这个 错误 消息。但是我可以访问我存储在我的"/resource/static/" 文件夹中的那些图像。

我知道这是配置问题。但我不知道我做错了什么。原因 ReactJs 可以在构建“.jar”后访问那些“/resource/static”文件夹图像”文件。那么为什么它无法访问“/target/static/public/assets”文件夹图像。

无法从 React 前端访问上传的图像到 Spring Boot 后端

我存储图片的地方

无法从 React 前端访问上传的图像到 Spring Boot 后端

数据库

无法从 React 前端访问上传的图像到 Spring Boot 后端

“npm run build”之后,我将我所有的 ReactJs 文件放在了我的 "/target/classes/static/" 文件夹中

无法从 React 前端访问上传的图像到 Spring Boot 后端

我真的需要知道如何访问和渲染构建 jar 文件后存储在文件系统中的静态图像

解决方法

在花费了大量时间之后,我终于解决了我的问题。而且我真的了解静态和动态资源在 Spring Boot 中是如何工作的。这真的很容易,但不幸的是,我从谷歌得到的大部分答案都非常令人困惑和误导。

所以这是解决方案:

我们在应用程序中提供两种类型的静态内容

first:当应用程序在网络服务器上运行时我们不会更新的内容,例如:| .css | .js | .html | 文件, 和

第二:图像,例如| .jpg | .png | .jpeg | .svg | 我们主要是要更新或想要动态行为。 例如:上传个人资料图片或更改您网站的封面图片或英雄图片、博客文章图片。

所以在 Spring-Boot 应用程序中。 对于第一部分:我们将把我们的| .css | .js | /src/main/resources/static/ 文件夹中的 .html | 文件。因此,当我们将项目构建到 jar 文件中时,它会自动复制这些文件并将它们放入“/target/classes/static/” >”文件夹。当您运行服务器时,您将能够在字体端应用程序 (ReactJS) 中看到这些静态内容。

现在对于第二部分,您需要进行一些配置。您需要创建一个类来实现一个名为 WebMvcConfigurer 的接口。

@Configuration
public class StaticConfig implements WebMvcConfigurer {
    @Override
    public void addresourceHandlers(resourceHandlerRegistry registry) {
        registry.addresourceHandler("/uploads/**")
                .addresourceLOCATIOns("file:" + System.getProperty("user.dir") + "/uploads/");
    }
}

这里我将我的图片保存在:

"/Users/{your_computer_namE}/{proj_namE}/uploads/" 文件夹

这就是我把它放在 addresourceLOCATIOns 中的原因。我使用了绝对路径。但是你也可以像这样使用相对路径:

registry.addresourceHandler("/uploads/**").addresourceLOCATIOns("file:uploads/");

它将相对于您的“.jar”文件位置搜索您上传的图片。

之后,如果您构建 jar 文件并使用终端或任何 IDE 运行它,您将能够直接从 http://localhost:8080 访问您上传的图像/uploads 并将其显示在您的前端应用程序中,而无需刷新您的网页或重新启动服务器。

注意:如果您在 addresourceLOCATIOns 中使用相对路径,请确保您上传的图片文件夹与您的 jar 文件相关,否则会显示 404 Not Found 在您的浏览器控制台中。

假设您的 jar 文件位于“目录”文件夹中,因此您上传的图像文件夹应位于此“目录”文件夹中

/目录
....spring_boot_app.jar
..../上传
........头像.jpg

大佬总结

以上是大佬教程为你收集整理的无法从 React 前端访问上传的图像到 Spring Boot 后端全部内容,希望文章能够帮你解决无法从 React 前端访问上传的图像到 Spring Boot 后端所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。