首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在<dir>/release/*/assets_manifest中没有清单。* Capistrano

在<dir>/release/*/assets_manifest中没有清单。* Capistrano
EN

Stack Overflow用户
提问于 2013-05-24 05:53:57
回答 1查看 829关注 0票数 1

我刚刚注意到我在cap deploy上收到了这个错误

代码语言:javascript
复制
No manifests in <dir>/releases/*/assets_manifest.*

这是cleanup任务的一部分,我只是在添加了一个任务来有条件地预编译资产后才开始获取它:

代码语言:javascript
复制
#precompile assets only when needed
  namespace :assets do
    task :precompile, :roles => :web, :except => { :no_release => true } do
      from = source.next_revision(current_revision)
      if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0
        run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile}
      else
        logger.info "Skipping asset pre-compilation because there were no asset changes"
      end
    end
  end

这是我需要关注的错误吗?

Rails 3.2.13

Capistrano 2.15.4

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-24 06:36:00

在使用capistrano进行部署时,每个版本都有一个assets_manifest文件,其中列出了该版本所需的所有资产。

运行清理时,capistrano会聚合出现在any release的assets_manifest文件的任何中的所有文件,并删除未出现在这些文件中且比expire_assets_after旧的所有资源。

显然,您的一个部署没有资产更改,因此assets:precompile没有运行,并且此发布目录现在缺少capistrano在其cleanup任务中查找的assets_manifest文件。

如果它停止了您的部署,那么您显然应该关注它。否则,我将进行一些测试,以查看资产是否确实被正确清理,并在以后修复此错误。

顺便说一下--为了解决你的问题,你可能需要修改capistrano的clean_expired任务。您可以找到exact code here

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16724555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档