【发布时间】:2011-11-17 05:00:33
【问题描述】:
我知道这有点矛盾,因为浏览器必须下载字体才能呈现它,但我想知道是否有办法将它托管在无法直接下载(或缓存到用户计算机上)的地方那件事)。
我想出的一个解决方案是制作一个 PHP 脚本,将当前时间散列到秒(添加盐)。如果 GET 请求中的特定变量与此哈希匹配,则它将发送字体 MIME 类型的标头,然后输出字体文件的内容。
然后我会在样式表中重新创建哈希并连接字符串,这将是对 PHP 脚本的有效请求。
这是基本的想法。我让它工作。但这有两个缺陷:
- 如果浏览器在另一秒请求该字体,PHP 脚本将无法匹配哈希值,因此,不会输出任何内容,因此该字体将是备用字体(如果未提供,则为默认字体)李>
- 如果有人足够快,如果他/她在同一秒内请求,他/她仍然可以直接下载字体(当然这可能必须是一个可以执行此操作的脚本。
浏览器也会在任何地方缓存字体(并不是说缓存会有所帮助,因为 URI 中的哈希实际上总是不同的)。
编辑:我可以利用任何$_SERVER 变量吗?
【问题讨论】: