Ruby on rails Rails:资产预编译会导致应用程序在生产中失败
我使用的是Rails v3.2.8、Capistrano v2.13.5和Unicorn 4.3.1,当我部署时,会出现一种非常奇怪的行为 如果满足以下条件: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尚未重新启动,因此不应该知道使用新类的代码 就像清除了类缓存,自动加载会重新加载我的模型一样 你知道这是什么
- 存在要预编译的资产
- 在代码库中添加了新的类或方法
- 应用程序的某些部分使用此新类或方法
谢谢:)你能粘贴错误堆栈跟踪吗?它并不总是一样的,通常是一个经典的未定义方法或未定义的常量错误。如果你不是在开发模式下运行(或在类缓存关闭的情况下),你必须在某个地方重新启动unicorn-观察你的unicorn进程中的master/old master。它可能埋在你的cap配方中的某个地方。我正在重新启动unicorn,但它发生在资产编译之后。我在我的dev实例上调用了
cap production deploy
,但是这些命令是在生产服务器上执行的,因此不会受到影响。