我正在编写自己的静态Web内容传递例程。对于缓存,我计划在诸如
之类的URL中包含哈希/static/file.MD5HASH.png
我正在使用静态编译语言进行开发。我读 https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#cachedstaticfilesstorage 和 https://gist.github.com/3207357
现在我的心理问题是如何有效地确定文件的哈希值?我不会在每次向服务器发出请求时计算哈希值。所以我需要一些缓存。
我可以编写一个帮助程序,它接受静态内容的路径,递归计算哈希并将结果存储为
filename.png HASH
在名为.cache.hash.lookup的文件中。此文件在每个请求上都加载到Web服务器启动和状态,因此当即将提供静态文件时,它将在缓存中查找,如果缓存已过时,则重新加载缓存。
这可行吗?请不要使用框架X来建议如何使用框架X,因为我想了解它并编写我自己的例程。
答案 0 :(得分:0)
阅读您的链接,其目的是存储同一资源的多个版本,因此在插入新文件时会将哈希添加到文件名中。
您的HTTP服务器可能很笨,只是按名称查找文件。 (我看到的另一个优点是你可以盲目地回复“304 Not changed”到任何条件请求,因为文件名中的哈希作为etag。)
或者我错过了什么?