0

我最近在新的云生产环境中首次实施了Capistrano。当我运行cap deploy时,一切似乎都正常。我可以在浏览器中访问我的实时应用程序,但我的静态文件似乎加载非常缓慢(如5.0-12.0s)。缓慢的资产管道/静态文件

查看为清晰度回答config.assets.compile

回答

1

静态文件加载速度很慢,因为它们可能不是静态的,而是由链轮提供服务。

检查production.rb并查看config.assets.compile = true或未设置。这意味着Sprockets正在完成这项工作。您还会看到正在使用的远期标题。

看一看/home/my_user/my_app/current/public看看assets是否存在;我怀疑它没有。

那意味着mkdir -p不起作用。最可能的原因是部署用户没有足够的权限来创建目录。

修复此问题,并检查(如果这是从3.0或之前版本升级的应用程序),则您的配置设置与管道指南的last section中的配置匹配。

+0

谢谢。我发现我错误地理解了'#不要回退到资产管道,如果预编译的资产错过了'。如果'config.assets.compile = true',那么即使它们被预编译,它也会在运行时编译它们。 – 2012-01-18 21:57:30

+0

关于'cap deploy',资产正在成功编译。如果我手动删除资产文件夹,然后再次“cap deploy”,它们就会重新出现。如果我(作为同一用户)ssh并运行mkdir -p/...命令,没有权限问题。这是我在deploy.rb中错过的东西吗? – 2012-01-18 21:59:16

+0

如果compile为true,则Sprockets处理资产请求(如果它们不存在于“public/assets”中(默认值为false)。如果它是假的,那么你的应用程序将返回404缺失的资产。你是否使用标准的部署脚本(通过在你的Capfile中包含'load'deploy/assets'')? – 2012-01-18 21:59:50