我正在学习颤动网络。现在,我想将此代码部署在真实服务器中。 颤动的代码在这里:在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'),
),
),
);
}
}
如何在服务器中部署此代码?我是颤抖网路的新手。
答案 0 :(得分:4)
您可以在 Nodejs 的共享托管中或在 Python 的 VPS 服务器中部署Flutter Web应用程序。关注此中等博客{{3 }}
在使用“ flutter build web”构建Flutter Web应用程序之后,要将其托管在共享托管计划中,准备将Node.js应用程序作为Flutter Web应用程序的简单服务器,这里是示例代码
app.js
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var app = express();
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public-flutter')));
module.exports = app;
package.json
{
"name": "flutter-web-app",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "~4.16.1",
"morgan": "~1.9.1"
}
}
创建一个文件夹并将其命名(“ public-flutter”),然后将flutter Web应用程序放置在您刚刚创建的文件夹中,这样,如果您在共享主机中,nodejs可以通过他的服务器为其提供服务,只需继续阅读Blog发布
并且如果您在VPS服务器中,那么如果要为nodejs应用提供服务器,请运行此命令
node app.js
或者,如果您不希望nodejs只是在Flutter Web应用程序中使用python,则可以使用此命令将其作为简单的http服务器
nohup python -m SimpleHTTPServer 8000 &
运行命令时,只需确保您位于Web应用程序文件夹中即可。即使您在Linux上关闭了SSH会话,“ nohub”也将使命令继续运行。 或者,您可以使用here软件包通过Dart pub / webdev工具为您的应用提供服务器。
答案 1 :(得分:2)
您只需要使用 webdev 工具进行生产构建。 要安装webdev,您需要一个发布工具,
因此,请转到安装了dart sdk的位置,并且在bin文件夹中应该有一个pub批处理文件。您需要提供bin文件夹到环境变量的路径才能使用cmd中的pub。 p>
现在打开cmd并点击以下命令安装webdev
pub global activate webdev
现在转到项目的根文件夹并在调试模式下进行构建
webdev build
您应该在根目录中看到一个构建文件夹,只需复制该文件夹并将其托管在Web服务器上即可。
我使用相同的方法将其部署到github页面heres How in detail guide:
答案 2 :(得分:1)
如果您想通过网络使用自己的服务器,例如虚拟专用主机或其他网络主机:
转到项目的根文件夹并以发布模式flutter build web
进行构建,然后
将(/build/web)
目录上传到您的服务器,
您可以按照this link并在Windows服务器上配置IIS。
答案 3 :(得分:1)
这是在Amazon Web服务器上部署Flutter Web应用程序的简单方法。
以下是我遵循的简单过程。
flutter build web —release
这是简单的视频教程: https://youtu.be/htuHNO9JeRU
答案 4 :(得分:0)
如果是Firebase项目,则可以使用 Firebase托管。
它将要求您在系统上安装 Firebase工具,并且必须在项目的根文件夹中对其进行初始化。
然后您只需要:
flutter build web
firebase deploy
并刷新浏览器(可能使用 ctrl + F5 或 ctrl + shift + r )
答案 5 :(得分:0)
Nota Bene - 从今天开始使用 flutter 2.0,我看到一个错误,图片没有上传。性能也不是最好的 今天。将此添加为书签,我将更新解决方法。
适用于使用任何类型的 VPS/共享主机的用户的一种解决方案:
例如
<base href="/"> to <base href="/web/">
tldr; 两个问题 - 在 pubspec.yaml 中,我忘记取消注释资产文件夹,当为 Web 构建时,图像被放置了一个 文件夹下的资产文件夹。编辑 pubspec.yaml 并移动 上一级的图像文件夹(在为 Web 构建之后)解决了 问题。
我的 flutter 项目文件夹在项目根目录中有一个 assets/images 文件夹。在没有在线看到图像(在调试期间可见)后,我发现运行 flutter build web --release
导致我的资产文件夹在 build/web/assets/assets/images
中重新创建。我的代码正确引用了 assets/images/file.png
。在部署到 Web 时,我只是将图像文件夹上移了一层。所以我的网络服务器根现在有 assets/images/name.png
并且图像显示正常。
解决方案 - 解决此问题的方法是使用适当的资产结构,即为(图像和
google_fonts) 在 flutter 项目根目录中。然后编译器构建
网络项目正确。我的代码将图像资产引用为
images/name.png
。 Pubspec.yaml 应该引用资产:作为
- images/
和 - google_fonts/