当从浏览器调用CSS时,Rails将所有CSS文件合并为一个:
all.css?random-section-id-number (e.g. all.css?2342568659756352)
每次到期时,数字都会改变。
我正在与Wordpress共享这个CSS文件,我希望Wordpress调用相同的CSS,以便减少HTTP请求。但是,如果我放入all.css,它将从Rails调用一个新的CSS,导致重新加载CSS文件。
如何让Wordpress使用具有相同section-id的缓存CSS文件?
答案 0 :(得分:0)
Rails中的资产之后的“随机数”是文件mtime。在Wordpress中做类似的事情:
<? $stat = stat("/path/to/your/railsapp/stylesheets/stylesheet.css"); ?>
<link rel="stylesheet" type="text/css" href="/railsapp/stylesheets/stylesheet.css?<?=$stat["mtime"] ?>" />
也就是说,该字符串的目的不是帮助缓存,而是在文件发生变化时充当缓存破坏者。如果强制刷新,您的浏览器将下载CSS的新副本,或者您没有正确设置CSS文件的过期标头,但是没有cachebuster字符串,它不知道在文件时下载新副本变化。