2012-11-15 37 views
3

我已经设置了页面缓存,可以在公共文件夹中随时创建HTML文件。我正在使用Capistrano来部署Rails应用程序。如何删除Rails拥有的静态html缓存文件?

当你需要清理旧版本在Capistrano时,该问题开始。缓存文件是,由rails所有,这意味着部署用户无法删除这些文件。

我没有root权限的服务器,因此使用提升的权限是不是一种选择。

建议的一种可能性是将缓存符号链接到共享文件夹。但是,这不会清除发行版之间的缓存,这可能很危险。

+1

http://guides.rubyonrails.org/caching_with_rails.html#sweepers你可以看清洁工在轨道上,并写一些相应删除所有电流。 – erogol

+0

对 - 如果rails可以创建文件,Rails可以删除它们。 –

回答

0

好了,主要的问题是,当你运行Capistrano的任务,你有一个用户(通常是部署用户),所以为了创建/删除文件,您部署用户应该对他们的权限。

所以你的网络用户(在这种情况下轨)是不相关的部署用户和你说,你不不能在服务器上的root权限(可能是一个托管公司,对吧?)

您可以在网站上创建一个动作,在这里只有你将有机会获得,像 http://mywebsite.com/clear_cache

并就行动,你实际编写的代码列出旧的展开时的每一个,并清除缓存文件在旧的部署中,通过这样做,将删除文件的用户将成为web用户(rails)。