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