【问题标题】:Deploy a Flutter web application on Raspberry LAMP server在 Raspberry LAMP 服务器上部署 Flutter Web 应用程序
【发布时间】:2022-01-14 14:21:31
【问题描述】:

我在我的树莓派上创建了一个 LAMP 服务器,想在上面开发一个 Flutter Web 应用程序。我从 Flutter 演示项目开始,并使用“web”选项构建它。然后我将创建的“web”文件夹的内容转移到我的树莓派上的 /var/www/html/。但是当我在浏览器上打开 web 应用程序时,我只能得到一个空白页面。我是 Web 开发的新手,我错过了一些东西。有什么建议?我需要在 LAMP 上安装一些引擎吗?

【问题讨论】:

    标签: flutter web-applications raspberry-pi


    【解决方案1】:

    LAMP = Linux、Apache、Mysql、PHP/Python/Perl ...

    现在发布一个 Flutter 应用程序是完全不同的。 (请参阅https://docs.flutter.dev/deployment/web)但与 Angular 或 React 相同。您必须 build 访问网络。比如将 dart 代码转换为 Javascript、html、css。

    它应该有这样的目录结构:

    /build/web
      assets
        AssetManifest.json
        FontManifest.json
        NOTICES
        fonts
          MaterialIcons-Regular.ttf
          <other font files>
        <image files>
      index.html
      main.dart.js
      main.dart.js.map
    

    现在,既然你有 LAMP,你只需要 Apache 来运行它。 如果您将 /build/web 上传到 /var/www/html/

    然后您可以通过 http://SERVERIP/build/web/ 访问它

    但是如果你直接在 /var/www/html/ 上上传 /build/web 的内容,那么就不需要寻找子目录了。

    /build/web/index.html 应该在/var/www/html/index.html

    【讨论】:

    • 是的,我知道,这就是问题所在:如果我打开 SERVERIP(我已将 /build/web 的内容直接上传到 /var/www/html/),我会得到一个空白页。
    • 检查控制台是否有错误
    • 在控制台中我实际上有一个错误: GET mysite/main.dart.js net::ERR_ABORTED 404 (Not Found) loadMainDartJs @ (index):47 (anonymous) @ (index):97 index 47 是行 document.body.append(scriptTag);索引 97 是行 loadMainDartJs();无论如何,将/build/web的内容直接放在/var/www/html/文件夹中的过程是否正确而不安装其他包?
    • 你应该在 /var/www/html 里面至少有 index.html main.dart.js main.dart.js.map 加上资产(如果有的话)
    • GET mysite/main.dart.js net::ERR_ABORTED 404 (Not Found) 表示/var/www/html 内部没有main.dart.js
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2019-09-27
    • 2016-04-10
    • 2019-01-03
    • 1970-01-01
    相关资源
    最近更新 更多