我已经设置了页面缓存,可以动态地在公用文件夹中创建HTML文件。我正在使用Capistrano部署Rails应用程序。
当您需要在Capistrano中清理旧版本时,问题就会出现。缓存文件由rails 拥有,这意味着部署用户无法删除文件。
我没有服务器的root权限,因此不能使用提升权限。
建议的一种可能性是将缓存符号链接到共享文件夹。但是,这不会清除版本之间的缓存,这可能很危险。
答案 0 :(得分:0)
好吧,主要的问题是当你运行一个capistrano任务时,你有一个用户(通常是部署用户),所以为了创建/删除文件,你的部署用户应该对它们拥有权限。
因此,您的Web用户(在本例中为rails)与部署用户无关,正如您所说,您不能在服务器上拥有root权限(可能是托管公司,对吗?)
您可以在您的网站中创建一个操作,只有您可以访问的位置,例如 http://mywebsite.com/clear_cache
在该操作上,您实际编写代码以列出每个旧部署,并清除旧部署中的缓存文件,通过这样做,将删除文件的用户将是Web用户(导轨)。