You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Swift Pages无法加载远程图片求助:仅显示文本不显示图片

Swift Playgrounds Markup无法显示远程图片的原因及解决办法

我之前也碰到过一模一样的问题,Swift Playgrounds的「Show rendered markup」模式对远程图片的支持确实有严格限制,下面给你拆解原因和可行的解决方法:

为什么远程图片显示不出来?

Swift Playgrounds的Markup渲染引擎出于安全和离线可用性的考虑,默认完全不允许加载远程网络图片。它只支持加载本地项目内的资源文件,或者Playgrounds自带bundle里的图片。另外你用的那个苹果旧图标URL大概率已经失效了,但这不是核心问题——哪怕是完全有效的远程链接,Playgrounds也会直接阻止加载。

解决办法

方法一:使用本地图片(最推荐)

这是最稳定省心的方式,步骤很简单:

  • 先把你要显示的图片下载到本地电脑。
  • 在Swift Playgrounds里,点击左上角的「+」按钮,选择「Add Files」,把下载好的图片导入到你的项目中。
  • 修改你的Markup代码,把远程URL换成本地图片的文件名,比如:
    //: ![Xcode icon](xcode.png "Some hover text")
    
    只要文件名和导入的图片完全一致,切换到渲染模式就能正常显示图片了。

方法二:内嵌Base64编码的图片(适合小图标)

如果不想添加本地文件,可以把图片转换成Base64编码直接内嵌到代码里:

  1. 用在线工具或者本地脚本把图片转换成带data:image/png;base64,前缀的Base64字符串(根据图片格式替换pngjpg等)。
  2. 把这个字符串替换到图片链接的位置,比如:
    //: ![Xcode icon](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAA... "Some hover text")
    
    注意:这种方式只适合小尺寸图标类图片,大图片的Base64字符串会非常长,严重影响代码可读性。

内容的提问来源于stack exchange,提问作者user2924482

火山引擎 最新活动