2013-12-09 33 views
1

Keter迄今为止已经非常棒。对于我的小玩具项目,我曾经在生产服务器上创建了一个关键捆绑包,并将其推送到了更新的目录中,并且一切正常。已部署的Keter App使用新的Keter Bundle登录用户

现在我想了解如何设置登台环境,因此我尝试在登台服务器上编译我的包(它是生产服务器的映像副本)。当我将这个软件包推送到我的生产服务器(通过scp)时,它会注销登录用户。该应用程序本身是重新登录后细

发生了什么变化。

  • 一些模板代码已更改,但之前
  • 耶索德的设置在生产服务器上编译时没有剧烈而这些变化都很好。 yml更改为使用登台服务器的IP地址进行开发测试
  • Keter.yaml未被修改。

我在做什么错?为什么Keter关心我的.keter包是在哪里创建的?有没有办法在不中断登录用户的情况下创建这些包?

谢谢!

回答

1

最有可能的问题是,每次部署应用程序时都会创建一个新的client_session_key文件。相反,您需要生成一次密钥文件并重新使用它。这通常由Yesod脚手架站点正确处理,但提供了一个makeSessionBackend的实现,它将密钥文件存储在config中。

您目前实施的makeSessionBackend是什么?而且你的包裹包括文件config/client_session_key.aes

+0

哇,你真不可思议!我解开了我的Keter包(新旧),我确实在client_session_key.aes中看到了不同的内容!我正在使用一个脚手架站点,它的代码是'makeSessionBackend _ = fmap $ defaultClientSessionBackend(7 * 24 * 60 * 60)“config/client_session_key.aes”'。我应该如何改变它?默认值是否与生产服务器始终重新生成相同密钥的主机名相关联? – Ecognium

+0

没关系。发现问题!我在'.gitignore'中有'aes file',所以它不会被推送到登台服务器。当我需要创建捆绑包时,我将手动复制它。感谢您指出问题! – Ecognium