我正在学习Flutter Web。现在我想在真实的的服务器上部署这段代码。flutter代码如下:在lib文件夹中
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter layout demo',
home: Scaffold(
appBar: AppBar(
title: Text('Flutter layout demo'),
),
body: Center(
child: Text('Hello World'),
),
),
);
}
}
如何在服务器上部署此代码?我是Flutter网站的新手。
6条答案
按热度按时间cnh2zyt31#
[更新]**
要为web创建生产版本,您现在可以直接运行类似于其他平台(android和ios)的
flutter build web
命令,您将看到**build/web
**文件夹与assets文件夹一起生成,您可以简单地将其部署在服务器上。参见https://docs.flutter.dev/deployment/web
[旧答案步骤1和2不再需要]
您需要使用
webdev
工具进行生产构建,要安装webdev
,您需要一个pub工具。1.所以转到安装dart
SDK
的位置,在bin文件夹中应该有一个pub批处理文件。您需要提供bin文件夹到环境变量的路径,以便从cmd使用pub。1.打开cmd/terminal运行下面的命令安装
webdev
pub global activate webdev
1.现在转到项目的根文件夹并在发布模式下进行构建
flutter build web
1.你应该在根目录中看到一个build文件夹(
/build/web
),只要复制那个文件夹并将其托管在web服务器上即可。我使用相同的方法将其部署到GitHub页面here's how in detail guide.
一些有用的链接:https://dart.dev/tools/webdev#build
下面是正在运行的flutterweb app
mnowg1ta2#
您可以使用Nodejs在共享主机中部署flutter Web应用,或使用Python在VPS服务器中部署flutter Web应用
当你用“flutter build web”构建了你的flutter web应用程序,并且你想把它托管在一个共享主机计划中时,准备你的nodejs应用程序作为你的flutter web应用程序的一个简单的服务器,这里是示例代码
app.js
package.json
创建一个文件夹并将其命名为(“public-flutter”),然后将flutter Web应用程序放入您刚刚创建的文件夹中,以便nodejs可以通过他的服务器提供服务。
如果你在VPS服务器上,那么如果你想服务nodejs应用程序,请运行此命令
或者,如果你不想使用nodejs,只需在flutter web应用程序中使用python,通过以下命令将其用作简单的http服务器
只要确保您在运行该命令时位于Web应用程序文件夹中即可。“nohub”会让命令继续运行,即使你在Linux上关闭了SSH会话。或者,您可以使用dhttpd包通过Dart pub/webdev工具为您的应用提供服务。
ctzwtxfj3#
下面是在amazon web server上部署flutter web应用程序的简单方法。
下面是我遵循的简单过程。
1.构建扑动网络:
flutter build web —release
1.在putty的帮助下连接到您的服务器(示例):
1.上传您的内容(网站)到服务器上。(在FileZilla的帮助下,您可以轻松地上传您的网站内容到服务器上)
以下是简单的视频教程:https://youtu.be/htuHNO9JeRU
mqkwyuun4#
如果您想通过网络使用您自己服务器,例如您的虚拟专用主机或通过网络的其他主机:
转到项目的根文件夹并在发布模式
flutter build web
下进行构建,然后上传
(/build/web)
目录到你的服务器,你可以按照this link和配置IIS在windows服务器上。4si2a6ki5#
Nota贝内-今天使用flutter 2.0时,我看到一个错误,图像无法上传。今天的表现也不是最好的。书签这一点,我将更新与变通办法。
对于那些使用VPS/共享主机的任何类型的解决方案:
例如。
更新缺少镜像问题
**tldr;**两个问题-在pubspec.yaml中,我忘记取消注解assets文件夹,当为web构建时,图像被放置在assets文件夹下面的一个文件夹中。编辑pubspec.yaml并将images文件夹上移一级(在为web构建之后)解决了这个问题。
我的flutter项目文件夹在项目根目录下有一个assets/images文件夹。在没有在线看到图像(在调试过程中可以看到)之后,我发现运行
flutter build web --release
导致我的assets文件夹在build/web/assets/assets/images
中重新创建。我的代码正确引用了assets/images/file.png
。我只是在部署到Web时将images文件夹上移了一级。所以我的Web服务器根目录现在有assets/images/name.png
,图像显示良好。解决方案-修复方法是使用适当的资产结构,即在flutter项目根目录中为(images和google_fonts)创建顶级文件夹。然后编译器正确地构建Web项目。我的代码将图像资源引用为
images/name.png
。yaml应该引用资产:如- images/
和- google_fonts/
vx6bjr1n6#
如果是Firebase项目,可以使用Firebase Hosting。
它会要求您在系统上安装Firebase Tools,您必须在项目的根文件夹中对其进行初始化。
那么你只需要:
刷新浏览器(可以使用 ctrl + F5 或 ctrl + shift + r)