gpt4 book ai didi

meteor - 构建纯离线 Meteor 应用

转载 作者:行者123 更新时间:2023-12-03 20:20:30 28 4
gpt4 key购买 nike

似乎是关于在 Stack Overflow 上没有互联网连接的情况下如何离线使用 Meteor 的一些问题,但我感兴趣的是是否可以构建一个只能离线使用的 Meteor 应用程序。例如,是否可以生成包含单个 HTML 文件和所有其他必需文件(图像,以及可能的 CSS 文件和 JavaScript 文件,如果它们未嵌入到 HTML 文件中)的文件夹,并且所有内容都开箱即用在浏览器中打开 HTML 文件?

据我测试,可以使用 appcache package 让它工作。 (在线时访问一次页面,离线时可以访问该页面),但似乎不可靠。

我也注意到 the stand alone blaze project ,但我想利用 Meteor 的特性(开发过程中的热代码推送、包、minimongo 等)。

那么,有谁知道我想做的事情是否可以以某种方式实现?

最佳答案

您可以构建一个纯离线 Meteor 应用程序,但有一些“奇怪”的妥协。

  • Meteor 在建立 DDP 连接时有点用力,因此它被设为 127.0.0.1 作为一种空环回,因为没有服务器。
  • 自从引入 Cordova 系统以来,Meteor 已经以这种离线方式构建了应用程序,因此它只是将其提取出来。有 server 的版本, web.cordovabrowser .

  • 1 ) 捆绑您的应用程序并将其提取出来

    我只是从 todo 应用程序中随机生成一个示例(它需要一个服务器端位,但可以忽略它)
    meteor create --example todos
    cd todos
    meteor bundle ~/Desktop/app.tar.gz
    cd Desktop
    tar xvzf app.tar.gz

    2) 在 bundle 中有一个目录在 /programs/web.browser ,这是您的离线应用程序的框架,因此请将该目录放在某处。

    3) 有两个文件以散列作为文件名。将它们重命名为 app.jsapp.css
    4) 有一个目录叫 app .将其所有内容向上移动到主目录,即
    cd app
    mv * ../
    rm -r app

    5) 创建一个 index.html包含以下内容的文件:
    <!DOCTYPE html>
    <html>

    <head>
    <link rel="stylesheet" href="app.css?meteor_css_resource=true">
    <script type="text/javascript">
    __meteor_runtime_config__ = {
    "meteorRelease": "1.0.0",
    "ROOT_URL": "/",
    "ROOT_URL_PATH_PREFIX": "",
    "autoupdateVersion": "00000",
    "DDP_DEFAULT_CONNECTION_URL": "127.0.0.1"
    };
    </script>

    <script type="text/javascript" src="app.js"></script>

    <script type="text/javascript">
    if (typeof Package === 'undefined' ||
    !Package.webapp ||
    !Package.webapp.WebApp ||
    !Package.webapp.WebApp._isCssLoaded())
    console.log("Load Fail");
    </script>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=0">
    <meta http-equiv="content-language" content="en">
    <meta name='apple-mobile-web-app-capable' content='yes' />
    <meta name='apple-mobile-web-app-status-bar-style' content='black' />
    <title>Your App</title>
    </head>

    <body>

    </body>

    </html>

    瞧:

    Keep in mind this app *needs* a server so its quite useless this way, but you can make a purely client side app

    请记住,此应用程序需要一个服务器,因此这种方式毫无用处,但如果您愿意,您可以制作一个纯粹的客户端应用程序。

    其他注意事项:
  • 对图像、字体和其他文件使用基于文件的 html 路径(file.jpg 而不是/images/file.jpg)
  • 使用铁路由器有点棘手,但您不能使用 /你必须使用 index.html 和相对路径
  • 您可以在 meteor-platform 中删除冗余包您不会使用的,例如自动更新
  • 有一些关于大气的软件包可以帮助数据存储,例如 ground:db而不是需要服务器端的 mongo 集合。
  • 关于meteor - 构建纯离线 Meteor 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27787917/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com