似乎是关于如何在Stack Overflow上没有互联网连接时如何使用Meteor离线的一些问题,但我感兴趣的是,是否可以构建仅在离线时使用的Meteor应用程序.例如,是否可以生成包含单个HTML文件和所有其他必要文件的文件夹(图像,以及可能的CSS文件和JavaScript文件,如果它们未嵌入到HTML文件中),并且当一个文件时,一切都可以立即使用在浏览器中打开HTML文件?
据我所测试,可以使用appcache包来实现它(当一个人在线时访问一个页面,然后一个人在离线时可以访问它),但它似乎不可靠.
我也注意到了独立火焰项目,但我想利用Meteor的功能(在开发过程中热门代码推送,包,最小化等).
那么,有没有人知道我想要做的事情是否可以通过某种方式实现?
Aks*_*hat 22
你可以构建一个纯粹离线的Meteor应用程序,但有一些"怪异"的妥协.
在进行DDP连接时,Meteor有点强大,所以它是127.0.0.1作为一种空环回,因为没有服务器.
自从Cordova系统推出以来,Meteor已经以这种离线方式构建了应用程序,所以它只是提取了它.有和server,web.cordova和browser.
1)捆绑您的应用程序并将其解压缩
我只是在todo应用程序中做一个随机的例子(它需要一个服务器端位,但很好地忽略它)
meteor create --example todos
cd todos
meteor bundle ~/Desktop/app.tar.gz
cd Desktop
tar xvzf app.tar.gz
Run Code Online (Sandbox Code Playgroud)
2)在bundle中有一个目录/programs/web.browser,这是你的离线应用程序的框架,所以把那个目录放在某个地方.
3)有两个文件带有散列作为文件名.将它们重命名为app.js和app.css
4)有一个名为的目录app.将其所有内容移动到主目录,即
cd app
mv * ../
rm -r app
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
瞧:

请记住,这个应用程序需要一个服务器,所以这种方式很无用,但如果你愿意,你可以制作一个纯粹的客户端应用程序.
其他考虑:
对图像,字体和其他文件使用基于文件的html路径(file.jpg而不是/images/file.jpg)
使用铁路由器有点棘手,但你不能使用/你必须使用index.html和相对路径
您可以删除meteor-platform不会使用的冗余包,例如autoupdate
大气中有一些包有助于数据存储,例如ground:db代替需要服务器端的mongo集合.
| 归档时间: |
|
| 查看次数: |
7334 次 |
| 最近记录: |