【Flutter】Flutter 编译 Web 网站 ① ( Tomcat 部署 Web 网站 )

文章目录

  • [一、Flutter 编译 Web 网站](#一、Flutter 编译 Web 网站)
  • [二、Tomcat 部署 Web 网站](#二、Tomcat 部署 Web 网站)
    • [1、下载安装 Tomcat](#1、下载安装 Tomcat)
    • 2、配置环境变量
    • [3、部署 Web 网站并启动 Tomcat](#3、部署 Web 网站并启动 Tomcat)
    • [4、防火墙配置 8080 入站规则](#4、防火墙配置 8080 入站规则)
    • 5、路由器配置端口映射
    • [6、Tomcat 命令行终端乱码](#6、Tomcat 命令行终端乱码)

参考文档 :

一、Flutter 编译 Web 网站


先清空 Flutter 编译内容 , 然后编译 Flutter Web 版应用 , 并使用 --base-href 指定 网站是放在域名的哪个 " 子文件夹 " 里运行 ;

shell 复制代码
flutter build web --release --base-href "/charging_password_generation_web/"

打包结果在 " D:\002_Project\001_Flutter\charging_password_generation\build\web " 目录中 ;

该目录 就是 网站的本体 , 将其部署到 http 服务器上即可进行访问 ;

之后 在 Tomcat 的 webapps 目录下 , 将 web 程序 放在 charging_password_generation_web 目录下 ;

Tomcat 的 webapps 目录 是 D:\Tomcat9\apache-tomcat-9.0.117\webapps\ 目录 ;

Web 网站放在 D:\Tomcat9\apache-tomcat-9.0.117\webapps\charging_password_generation_web 目录 中 ;

二、Tomcat 部署 Web 网站


1、下载安装 Tomcat

下载 Tomcat 10 , 下载地址 https://tomcat.apache.org/download-10.cgi ,

选择下载 " 64-bit Windows zip " 文件 ;

将下载的 " apache-tomcat-10.1.55-windows-x64.zip " 解压 , 解压后的目录为 " D:\Tomcat10\apache-tomcat-10.1.55 " ;

2、配置环境变量

配置 Java 地址 :

dart 复制代码
JAVA_HOME
D:\Program Files\Java\jdk1.8.0_144

配置 Tomcat 地址 :

dart 复制代码
CATALINA_HOME
D:\Tomcat10\apache-tomcat-10.1.55

配置 Path 环境变量 :

dart 复制代码
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%CATALINA_HOME%\bin;

注意 Tomcat 与 JDK 版本匹配 :

  • Tomcat 10 → 必须 JDK 11/17(不能用 JDK 8)
  • Tomcat 9 → JDK 8/11
  • Tomcat 8 → JDK 7/8

版本不匹配 , Tomcat 起不来 , 命令行终端一闪而过 ;

3、部署 Web 网站并启动 Tomcat

在 Tomcat 的 webapps 目录下 ,

创建 charging_password_generation_web 目录 , 这是 Flutter 编译导出时设置的 --base-href 参数 ;

dart 复制代码
flutter build web --release --base-href "/charging_password_generation_web/"

将 Flutter 项目根目录 " D:\002_Project\001_Flutter\charging_password_generation\ " 下的 " build\web " 编译结果 拷贝到 " D:\Tomcat9\apache-tomcat-9.0.117\webapps\charging_password_generation_web " 目录中 ;

安装完毕后 , 执行 " D:\Tomcat9\apache-tomcat-9.0.117\bin\startup.bat " 启动 Tomcat ;

4、防火墙配置 8080 入站规则

开放 8080 端口 :

控制面板 选择 " 更新和安全 " ,

在 Windows 安全中心 , 选择 " 防火墙和网络保护 " , 弹出对应对话框 ;

在 " 防火墙和网络保护 " 对话框 中 , 下拉 , 选择 " 高级设置 " , 弹出 " 高级安全 Windows Defender " 设置 ;

" 高级安全 Windows Defender 防火墙 " 设置对话框中 , 选择 " 入站规则 " , 点击 右侧的 " 新建规则 " , 然后 选择 创建的规则类型 " 端口 " ;

选择 TCP 协议 , 特定本地端口 8080 ;

选择 允许链接 操作 ;

配置文件 全选 ;

设置一个名称 ;

5、路由器配置端口映射

进入路由器 , 为 上述 局域网内的 服务器 的 8080 端口 映射一个外网端口 12000 ;

在 服务器 本身 可以使用 http://localhost:8080/charging_password_generation_web/ 地址访问 网站 ;

在 局域网 内的其它电脑端 , 可以通过局域网地址 http://192.168.0.6:8080/charging_password_generation_web/ 访问网站 ;

在 外部网络 , 必须通过 http://http://183.242.233.88:12000/charging_password_generation_web/ 访问该网站 ;

6、Tomcat 命令行终端乱码

Windows cmd 默认编码是 GBK , 新版 Tomcat 日志默认输出 UTF-8 , 两边编码不一致 → 中文变问号 / 方块 ;

修改 D:\Tomcat9\apache-tomcat-9.0.117\conf\logging.properties 配置文件 ,

找到

dart 复制代码
java.util.logging.ConsoleHandler.encoding = UTF-8

配置 , 将其改为 :

dart 复制代码
java.util.logging.ConsoleHandler.encoding = GBK

保存配置文件 → 重启 Tomcat → 控制台中文正常 ;

相关推荐
小码哥_常4 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
蜗牛攻城狮6 小时前
微前端四大方案选型对比与最佳实践:qiankun、micro-app、wujie、Module Federation
前端·微前端·qiankun·前端架构·micro-app·wujie
她说可以呀7 小时前
Vue插槽
前端·javascript·vue.js
qq_448011167 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
aixingpan8 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
2601_958352908 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
传奇开心果编程9 小时前
【Flutter踩坑排雷】第7课:巨型 build 函数坑|全部 UI 写在同一个 build,维护难、隐性异常
android·flutter·ios·移动开发·跨平台·dart·声明式ui
志尊宝9 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native
FRing0310 小时前
JavaScript入门到精通三十二(深拷贝、浅拷贝、递归函数)
开发语言·前端·javascript
excel10 小时前
双 Token 与前端使用 Crypto 公私钥鉴权换 Token,哪种方案更好?
前端·后端