【发布时间】:2017-10-31 10:11:06
【问题描述】:
在您的应用中拥有资产是否意味着当您使用 expo 构建和部署时,您的应用将依赖互联网连接?
我的应用正在使用 JSON 数据和图像,我不希望用户需要互联网连接才能使用它,但发布后它在没有互联网连接的情况下无法加载,有时甚至崩溃。
我正在使用 es6 导入来读取资产中的 JSON 并设置 Redux 状态。
【问题讨论】:
标签: reactjs react-native redux assets expo
在您的应用中拥有资产是否意味着当您使用 expo 构建和部署时,您的应用将依赖互联网连接?
我的应用正在使用 JSON 数据和图像,我不希望用户需要互联网连接才能使用它,但发布后它在没有互联网连接的情况下无法加载,有时甚至崩溃。
我正在使用 es6 导入来读取资产中的 JSON 并设置 Redux 状态。
【问题讨论】:
标签: reactjs react-native redux assets expo
编辑: 从 SDK 24 开始,答案已经改变。您现在可以在您的应用二进制文件中捆绑一些资产,而不再依赖于 CDN。
将您的资产捆绑到您的独立二进制文件中 Expo 可以在构建过程中将资产捆绑到您的独立二进制文件中,以便它们立即可用,即使用户以前从未运行过您的应用程序。这很重要,如果: 您的用户第一次打开您的应用时可能没有互联网,或者 如果您的应用需要大量资源才能使第一个屏幕正常运行。
见the announcement with some neat explanations and graphs here。
以下已接受的旧答案:我决定更改它,因为它不再正确,并且我在谷歌搜索中找到了自己的答案。这样我们就可以避免人们不会得到错误的信息。
是的,目前您的用户需要互联网连接。如文档中所述,资产当前已上传到内容交付网络 (CDN),而不是与您的应用程序打包在一起。引用the documentation:
生产中 每次您发布应用程序时,Expo 都会将您的资产上传到 Amazon CloudFront,这是一个速度极快的 CDN。它以一种智能的方式执行此操作,以确保您的部署保持快速:如果自上次部署以来资产没有更改,则将其跳过。您无需为此做任何事情,这一切都由 Expo 自动处理。
我希望他们将来改变它或使其成为可选,因为我也对没有互联网连接的应用程序感兴趣。
【讨论】: