Ghost + Azure:无法读取未定义的属性“__cid”

时间:2014-06-28 18:32:04

标签: node.js azure sqlite ghost-blog

鬼魂新手,NodeJS的新人,但无法阻止尝试设置Ghost。

目标:从源上获取一个新的ghost实例并在Azure上运行。

我按照Scott Hanselman's PostJeremiah Billmann's Post进行了尝试。

我做了以下事情:

  • 在我的本地环境中安装了node,ruby,grunt-cli
  • 在我的下载文件夹
  • 的文件夹中执行了https://github.com/TryGhost/ghost.git的git克隆
  • 将所有文件(.git文件夹除外)复制到我的存储库根目录
  • 在我的回购根
  • 中打开命令行
  • npm install
  • grunt init
  • grunt prod
  • 在根目录中创建了一个包含server.js的{​​{1}}文件
    • (我知道这是Azure所必需的)
  • var GhostServer = require('./index');重命名为config.example.js并修改其属性
    • 注意:未触及数据库(sqlite3)部分中的任何内容
  • 编辑.gitignore以停止忽略资产,config.js和/ core / built
  • 致力于Bitbucket
  • Azure选择并部署
  • 我跑了它,得到了500式错误信息
  • 我编辑了config.js文件以使其输出完整错误

我看到的完整错误是:

iisnode.yml

完整错误的屏幕截图如下: enter image description here

知道我哪里出错吗?错误信息的性质让我怀疑它不是我,但鉴于我是新手,我可能完全错了。

2 个答案:

答案 0 :(得分:1)

我在标准的Linux机箱上进行全新升级时遇到了类似的问题。似乎sqlite3在其数据库的不存在路径上窒息。

试试:

  1. 确保/content/data目录存在(或者您在ghost-dev.db文件的配置文件中设置的路径)。如果没有,请创建它。

    通常,这应该可以解决问题。如果没有,那么您可能需要通过以下步骤2强制迁移。

  2. 尝试运行:

  3. FORCE_MIGRATION=true npm start

答案 1 :(得分:0)

Ghost(0.5.3)在config.js中包含默认的以下路径:

database: {
        client: 'sqlite3',
        connection: {
            filename: path.join(__dirname, '/content/data/ghost-dev.db')
        },
        debug: false
    },

从Ghost的根目录运行以下一系列命令,以创建文件路径和文件sqlite3要求:

cd content
mkdir data
cd data
touch ghost-dev.db
../../
npm start

仅供参考:如果你的.gitignore文件中包含以下行

,就会发生这种情况
/content/data/*