进入flutter项目的终端输入命令:
flutter build web
在 build文件夹下生成 web 文件夹,注意,这里有坑,我是后来才发现,
用 “flutter build web” 生成的web文件,在部署之后,运行的过程中可能会有一些问题,比如ImagePicker不起作用,于是我用另一种方法生成 web文件,
flutter run -d chrome --release
上面这行命令,以release模式在浏览器上运行,也生成web文件,我对比这两种方法生成的web里的 main.dart.js,发现两者不一样,
这或许是前者运行时会有一些bug的原因吧,总之往后我都用flutter run -d chrome --release的方式生成web文件。
修改 web 里的 index.html 文件,修改其中的<base>标签,修改如下:
<base href="http://192.168.1.102:9091/flutterapp01/">
192.168.1.102 是Linux的IP地址,9091 是tomcat监听的端口(稍后配置),
待会儿测试的时候会在浏览器输入:http://192.168.1.102:9091/flutterapp01
将 web文件夹上传到 Linux的 /root/flutter-apps下,改名为testapp01(根据自己喜好传到Linux的不同目录,改不同的名),此时在Linux上有 /root/flutter-apps/testapp01
配置 tomcat
进入Linux的 root/tomcat-flutter/conf 目录(我的tomcat放在 root/tomcat-flutter)
cd /root/tomcat-flutter/conf/
修改server.xml文件
vi server.xml
修改 <Server>的port,这个tomcat专门为flutter项目服务的,于是我把Server port改为9006,防止和其它tomcat冲突(如果Linux上还有其他tomcat的话)
接着修改 <Connector>的port,我要tomcat监听9091
接着在<Engine>下,添加一个<Host>,192.168.1.102 是Linux的IP地址
<Host name="192.168.1.102" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/flutterapp01" docBase="/root/flutter-apps/testapp01" />
</Host>
进入 root/tomcat-flutter/bin 目录
cd /root/tomcat-flutter/bin
启动tomcat
./startup.sh
在浏览器输入:http://192.168.1.102:9091/flutterapp01