这是我的(审查)config / deploy.rb: https://gist.github.com/eedf6c976f632c1242cf
出于某种原因,我的资产的任何更改,无论是CoffeeScript还是SASS / SCSS文件,在我第一次部署时都不会出现在生产环境中。当我第二次部署时,资产变更就会生效。这是浪费时间,我不知道为什么会这样。有什么想法吗?
答案 0 :(得分:1)
我假设您的Capfile看起来像这样:
load 'deploy'
load 'deploy/assets'
load 'config/deploy'
只需交换deploy/assets
和config/deploy
的展示位置即可。所以:
load 'deploy'
load 'config/deploy'
load 'deploy/assets'
答案 1 :(得分:0)
好的,我想出了如何使它工作,但它不干净。出于某种原因,deploy:assets:precompile
正在deploy:create_symlink
之前运行,而不是之后运行。结果是,在编译资产时,服务器上的current
目录尚未指向新代码,因此它们仅针对先前的部署进行编译。这就是我的资产没有更新的原因,除非我部署了两次。
我通过添加以下内容来应用快速修复:
before "deploy:assets:precompile", "deploy:create_symlink"
这会在预编译之前触发创建符号链接,以便拾取资产更改。结果是符号链接创建了两次,因为现有的行为仍然运行。它有效,但感觉很脏。
我真的不确定为什么这首先是一个问题,我不明白为什么其他人似乎没有这个问题;我的deploy.rb
非常干脆,没什么太花哨的。我唯一能想到的是load "deploy/assets"
不在文件中的正确位置。我只是假设它在顶部,我不知道它是否会影响执行顺序。
任何建议作为解决此问题的正确方法都将非常感谢!
答案 2 :(得分:0)
当我使用这个gem时,我发现了同样的错误。
require "bundler/capistrano"
当我使用下面的宝石时,一切都很好~~
require 'capistrano/ext/multistage'
注意:不要同时使用这两个宝石,或者你可以满足每个宝石覆盖的部署步骤。
根据我的经验,U应该部署,在控制台中查看进程和输出,检测出错误。
也许你之前......以及...之后的命令无效。