Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:资产预编译会导致应用程序在生产中失败_Ruby On Rails_Capistrano_Asset Pipeline - Fatal编程技术网

Ruby on rails Rails:资产预编译会导致应用程序在生产中失败

Ruby on rails Rails:资产预编译会导致应用程序在生产中失败,ruby-on-rails,capistrano,asset-pipeline,Ruby On Rails,Capistrano,Asset Pipeline,我使用的是Rails v3.2.8、Capistrano v2.13.5和Unicorn 4.3.1,当我部署时,会出现一种非常奇怪的行为 如果满足以下条件: 存在要预编译的资产 在代码库中添加了新的类或方法 应用程序的某些部分使用此新类或方法 在部署过程中预编译资产时,在unicorn重新启动之前,web应用程序上会出现异常,告诉我新的类或方法未定义 这不应该发生,因为unicorn尚未重新启动,因此不应该知道使用新类的代码 就像清除了类缓存,自动加载会重新加载我的模型一样 你知道这是什么

我使用的是Rails v3.2.8、Capistrano v2.13.5和Unicorn 4.3.1,当我部署时,会出现一种非常奇怪的行为

如果满足以下条件:

  • 存在要预编译的资产
  • 在代码库中添加了新的类或方法
  • 应用程序的某些部分使用此新类或方法
在部署过程中预编译资产时,在unicorn重新启动之前,web应用程序上会出现异常,告诉我新的类或方法未定义

这不应该发生,因为unicorn尚未重新启动,因此不应该知道使用新类的代码

就像清除了类缓存,自动加载会重新加载我的模型一样

你知道这是什么原因吗


谢谢:)

你能粘贴错误堆栈跟踪吗?它并不总是一样的,通常是一个经典的未定义方法或未定义的常量错误。如果你不是在开发模式下运行(或在类缓存关闭的情况下),你必须在某个地方重新启动unicorn-观察你的unicorn进程中的master/old master。它可能埋在你的cap配方中的某个地方。我正在重新启动unicorn,但它发生在资产编译之后。我在我的dev实例上调用了
cap production deploy
,但是这些命令是在生产服务器上执行的,因此不会受到影响。