flutter - Flutter web:如何将资产重定向到其他域?
问题描述
我在https://a.com/上部署 Flutter Web html 文件 并设置为 cdn
因此,当我访问https://a.com/#时,它将在https://b.com/上加载所有 js 文件, 但资产文件仍从https://a.com/加载,如http://a.com /assets/assets/images/sub.png
那么如何告诉颤振从https://b.com/static/assets找到的资产?
解决方案
我这样做的方式是在 AWS Amplify 上,因为我没有使用云端,所以资产被放在由 CDN 托管的不同服务器上。
- 确保您的主机和目标 CDN 使用相同的协议 (http/https),因为请求使用的是 xhr
- 如果您希望确保更快的加载时间,您也可以使用 preloadjs 预加载您的资产,并将资产列表放入 JSON 文件中。
- 使用 .htaccess (位于您的根文件夹中)或放大规则。
.htaccess
RewriteEngine ON
RewriteRule ^assets/(.*)$ https://b.com/static/assets/$1 [R=301,L]
而我的 AWS Amplify 规则是:
[
{
"source": "/assets/<*>",
"target": "https://b.com/static/assets/<*>",
"status": "301",
"condition": null
}
]
您可以通过https://htaccess.madewithlove.be/测试 htaccess 规则
这可能因服务器(apache、nginx、AWS amplify)而异,但它们搜索的关键字将是“将文件夹重定向到另一个域”或类似的东西。
您不能直接Image.assets
指向外部链接,因为这会破坏移动应用程序,除非您创建自己的方法然后将其分解为单独的 web > image.network
& mobile > image.assets
。
如果您无权访问服务器,就会出现这种情况。
推荐阅读
- angular - 在运行时更改角度材料日期选择器日期格式
- r - 使用 dplyr 获取每组或每行具有特定值的第一列的索引
- python - 在 spark 中自动将 json 放入数据帧
- rx-swift - 如何编写响应式扩展来观察字符串属性或父类的变化,由 iOS 提供
- algorithm - 支持分页的循环事件搜索(在 Elasticsearch 中)
- excel - 间接填充自定义功能区上的下拉菜单
- c# - 如何在 UWP C# 中读取 .ini 文件?
- asp.net-core - Stackdriver 日志的严重性始终为部署到 GKE 的 .NET Core 应用程序提供信息
- javascript - 无法使用 chrome.storage.local.set 保存集
- angular - 折线图未按预期工作:角度 7