欢迎光临散文网 会员登陆 & 注册

学习日志 211231 用reactjs做个前端界面

2021-12-31 17:31 作者:mayoiwill  | 我要投稿

Java调用elasticsearch

======================


# 发布

- 标准发布流程

- 走postman 192.168.2.15:31000/doc/_search 成功


## 尝试做个界面

- spring boot 发布静态html文件

  - https://stackoverflow.com/questions/31876389/how-to-serve-static-html-content-page-in-spring-boot#:~:text=You%20can%20use%20ModelAndView%20in%20order%20to%20serve,application.properties%3A-%20spring.mvc.view.suffix%20%3D.html%20HTML%20File%20%3A%20-%20src%2Fmain%2Fresources%2Fstatic%2Findex.html

  - spring boot 默认提供src/main/resources/static目录下的所有文件

  - 对应/目录可以访问

  - 例如 src/main/resources/static/xxx.js 对应 localhost:8080/xxx.js

- 学习reactjs

  - https://reactjs.org/docs/add-react-to-a-website.html

  - 以及其后续教程

- 使用create react app创建工程

- 抽取一个Search组件

- 创建form 里面有input和button

  - 将input的value通过handleChange和state绑定

  - 通过onKeyDown e.key === "ENTER"来触发搜索

- 发起ajax请求

  - 使用fetch

  - 第二参数里指定method:"POST" data

- 问题

  - 响应不是json 修改服务端 返回规范的json

  - 跨域了

- 前端单独发布

  - 启用集群中的nginx

  - 修改其service为NodePort形式 外部端口规划为30080

  - 复制build好的资源到nginx上

- 问题 图标的相对路径错了

  - 参考 https://create-react-app.dev/docs/deployment/

  - 参考 https://www.codingdeft.com/posts/react-deploy-cdn/

  - 编写 .env.production 文件

    - 内容为 `PUBLIC_URL = http://192.168.2.15:30080/`

  - 重新 npm run build + 发布

- 问题 spring boot mvc 返回 "error":"Unsupported Media Type"

  - 参考 https://javascript.info/fetch#:~:text=To%20set%20a%20request%20header%20in%20fetch%2C%20we,fetch%28protectedUrl%2C%20%7B%20headers%3A%20%7B%20Authentication%3A%20%27secret%27%20%7D%20%7D%29%3B

  - 设置 headers

- 解析结果集

- 检查

  - 输入person

  - 返回正常

- 总结 发布流程为

  - 前端工程 npm run build

  - 前端工程 复制static 到 集群的nginx上

  - 后端工程 修改js等静态资源的版本号

    - 如果只有js有修改, 只改js的版本号即可

  - 后端重新 docker 打包发布

    - mvn 编译 package

    - docker 打镜像

    - 上传镜像

    - kubectl 重启 deployment

- TODO

  - 发布新文章 到 数据库

  - 从数据库 使用 flink build数据到elasticsearch


学习日志 211231 用reactjs做个前端界面的评论 (共 条)

分享到微博请遵守国家法律