整个数据 URI 废话很快就会变老,但在那之前,我至少要赶上一圈。
所以我有想要更新的 CSS 文件以使用数据 URI 而不是远程位置。我在想我可以使用一些 PHP 和正则表达式以编程方式做到这一点,虽然它不会像我之前看到的数据 URI 重定向想法那样聪明和透明,但它会提供一个按钮“重建”选项来修复任何未来文件或更新。但后来我遇到了心理障碍。这是想法:
Fix-URI 脚本遍历存储在适当位置的所有 css 文件并 greps 的模式
url(".*")
(稍后添加一些模糊性)脚本确认文件是本地的并且存在并将内容咀嚼到数据 uri
脚本将找到的 url 替换为新的数据 uri。
完成后,脚本会保存更新的文件等。
但是,当然,我突然想到这只能工作一次。之后,该 url 已经是 data uri。我可以添加对“数据:”的检查,但对我来说真正的困境是:我怎么知道数据 uri 是最新的?如果我将“icon-xyz.png”替换为闪亮和更好,我不仅每次都必须检查每个数据uri,而且我必须以某种方式知道要与之比较的原始文件名,这不是标准属性截至目前的数据uri的一部分。
我不想要的是使用 php 变量的动态 css 文件。我还想尽可能地抽象解决方案,即使正则表达式马在谷仓之外。
一个通过的想法是简单地删除任何已转换的图像,或者至少将它们移动到“转换”目录。这样,可以立即发现更新版本或仍使用纯 url 的新图像。然后我可以数据神奇地转换旧的已经转换的图像版本,grep ,然后用新文件替换找到的位置。
然而,我担心我让它变得比我需要的更复杂,而且我错过了一些明显和方便的东西。
快速更新
使其尽可能抽象包括避免或至少抵制解决方案,例如 css 注释以反映文件名或注释掉新属性上方的属性等。