Silverstripe 缓存刷新不会持续

Silverstripe cache flush does not persist

第一次使用 SilverStripe(版本 3.6),在本地开发环境中处理网站时,我真的很难处理缓存问题(Mac OSX、PHP7 .1, Apache2.4).

在网站上查看页面时,我可以将 ?flush?flush=all 添加到 URL 并刷新缓存。通过这样做,我可以看到我对模板所做的更改或 CSS。这是一个 faff,但可以管理。

但是,如果我删除 flush 查询参数,页面将恢复到某个以前的版本。

我希望刷新操作能够清除所有缓存并让我看到页面的最新版本,而不必总是使用 ?flush 参数。

我有一个可写的/silverstripe-cache目录,我可以看到其中生成的文件。

我做错了什么?为什么 Silverstripe 缓存了一些旧版本的页面,尽管我使用了 flush?

谢谢!

所以我认为答案在 /cache 目录(我刚刚发现)中。

rm -rf cache/*

删除缓存目录中的所有文件,似乎解决了缓存 HTML 和 CSS 的问题,意味着我不需要在每个请求中添加 ?flush .

缓存文件夹在随后的页面加载中保持为空,可能是因为 SilverStripe 网站处于 运行 模式 SS_ENVIRONMENT_TYPE=dev。我假设当它处于活动状态时 (SS_ENVIRONMENT_TYPE=live) 然后将使用缓存文件夹。