[INFO] 开始上传项目文件……
6/12/2015, 8:47:37 PM [INFO] 命令行部署应用……
6/12/2015, 8:47:37 PM [INFO] 获取部署包
6/12/2015, 8:47:37 PM [INFO] 解压缩部署包
6/12/2015, 8:47:37 PM [INFO] 运行环境: Node.js
6/12/2015, 8:47:37 PM [INFO] 从缓存恢复依赖包
6/12/2015, 8:47:50 PM [INFO] 安装新的依赖
6/12/2015, 8:48:05 PM [INFO] 备份最新的依赖包
6/12/2015, 8:48:11 PM [INFO] 项目代码分发
6/12/2015, 8:48:14 PM [INFO] 创建新的容器
6/12/2015, 8:48:17 PM [INFO] 应用启动检测
6/12/2015, 8:48:34 PM [ERROR] 命令行部署应用失败: Error: updateContainers err: Error: 应用启动检测失败: 404_<!DOCTYPE HTML>
<html>
  <head>
    <title>Error</title>
    <link rel="stylesheet" href="/stylesheets/style.css">
  </head>
  <body>
    <h1>Not Found</h1>
    <h2></h2>
    <pre></pre>
  </body>
</html>

抱歉,部署失败 失败:命令行部署应用失败: Error: updateContainers err: Error: 应用启动检测失败: 404_<!DOCTYPE HTML>
<html>
  <head>
    <title>Error</title>
    <link rel="stylesheet" href="/stylesheets/style.css">
  </head>
  <body>
    <h1>Not Found</h1>
    <h2></h2>
    <pre></pre>
  </body>
</html>

这个我有经验,也是调试了超过 20 个小时才解决的。

假如变量 app, AV 是这样定义的:

var AV = require('leanengine');

var express = require('express');
var app = express();

我敢保证你存在下述情况之一:

  • 没有添加 AV.Cloud 中间件 (1)
  • 添加中间件的是顺序不对: (2)

对于上述 (1),你必须执行

app.use(AV.Cloud);

// 或像 GitHub 中的例子一样,如果你在注册云代码的
// js 文件中导出了 AV.Cloud 对象,
// 也可以直接把导出的这个对象当做 app#use 的参数:
var hello = require('path/to/your/hello/cloud/function/code');
app.use(hello);

对于上述 (2),必须采用下边的顺序:

app.use(AV.Cloud);

// 如果需要启用 cookieSession 以支持 AV.User 会话状态,在这里启用

// 如果需要强制启用 HTTPS,在这里启用

app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

// 然后注册你的子应用或路由,或各种 get/post 方法.
1 人赞了这个帖子.

还真是,我没加 AV.cloud 中间件,加上就好了!谢谢啦!

感谢楼上花了 20 小时的小哥,我也搞定了 imp

哈哈哈哈哈, 太感谢了,我才花了1个多小时就看到这个帖子了 v