亦身仙气 2024-01-08 15:46 采纳率: 71.9%
浏览 120
已结题

unity发布webgl的unityweb文件缓存问题

#unity发布webgl的时候使用gzip进行压缩了一下,同时也开启了缓存,但是为什么每次刷新网页的时候图片里面的unityweb后辍的文件都没缓存呢

img

img

  • 写回答

3条回答 默认 最新

  • 专家-百锦再@新空间代码工作室 全栈领域优质创作者 2024-01-08 16:32
    关注

    参照微信GPT回答你的问题:
    在Unity发布WebGL时,会生成包含Unity游戏数据的.unityweb文件。通过使用gzip进行压缩以及开启缓存可以提高网页加载速度和性能。

    通常情况下,浏览器会对静态资源(如图片、脚本、样式表等)进行缓存,以便在后续访问相同资源时可以从缓存中获取,而无需再次下载。这可以减少网络请求,加快页面加载速度,提升用户体验。

    然而,在某些情况下,尽管已经开启了缓存,仍然会导致.unityweb文件每次刷新网页时都不被缓存的原因可能有以下几种可能性:

    1. 缓存控制头设置不正确:请确保服务器返回的响应头中设置了正确的缓存控制头,例如Cache-ControlExpires。这些头部指示浏览器是否可以缓存资源以及缓存的有效期。

    2. 缓存版本号:如果你在每次发布新的WebGL版本时都保持.unityweb文件的URL不变,浏览器会认为是相同的资源,并使用缓存的版本。但是,如果你修改了.unityweb文件,而URL仍然保持不变,浏览器会重新下载更新后的文件。可以采用添加缓存版本号或者随机字符串到链接的方式,例如将链接设置为game.unityweb?v=1.0或者game.unityweb?123456,这样每次发生改变时都会更新链接,避免缓存问题。

    3. 强制禁用缓存:有时,开发者为了调试或其他目的,可能会禁用浏览器缓存。请确保你的代码或浏览器配置没有禁用缓存。

    注意:由于Unity WebGL游戏的.unityweb文件通常具有比较大的体积,即使开启了缓存,浏览器也可能选择不存储缓存或使用磁盘缓存等,这取决于浏览器的缓存策略和用户设备的存储空间。因此,尽管开启了缓存,也不能保证.unityweb文件能够持续缓存。

    个人比较倾向于缓存版本号维护的使用。实质就是,强制性更新缓存内容。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 创建了问题 1月8日

悬赏问题

  • ¥15 程序实在不会写,要秃了
  • ¥15 pycharm导入不了自己的包
  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度