1

我最近决定在 Azure 上创建一个供个人使用的小型博客(目前)。我开始深入研究博客框架 Hexo。现在我通过在本地创建一个 Hexo 博客来控制(第一个)基础知识,但我想将它推送到 Azure。

我为持续部署配置了一个带有 GIT 连接的基本 Web 应用程序(https://github.com/lmeijdam/demo-repo)。我尝试了一个教程

  • server.js 文件
  • 包.json
  • .gitignore

以上将导致工作响应并安装node_modules ...但是从那里我真的迷失了我的下一步...

我知道您可以创建一个 package.json 文件并查看我的 ftp 客户端 package.json 以及安装了正确模块的 node_modules 文件夹。我的 package.json;

{ "name": "hexo-site", "version": "0.0.0", "private": true, "hexo": { "version": "3.1.1" }, "dependencies": { "express ": "*", "hexo": "^3.1.0", "hexo-deployer-git": "0.0.4", "hexo-generator-archive": "^0.1.2", "hexo-generator -category:“^0.1.2”,“hexo-generator-index”:“^0.1.2”,“hexo-generator-tag”:“^0.1.1”,“hexo-renderer-ejs”:“ ^0.1.0", "hexo-renderer-marked": "^0.2.4", "hexo-renderer-stylus": "^0.3.0", "hexo-server": "^0.1.2" } }

而且我还发现如果您没有名为 server.js 的默认文件( https://github.com/yavorg/azure-node-starter/blob/master/),您可以将 Procfile 部署到 Azure 然后使用的 GIT 存储库档案

后来一位朋友带着提示来编辑 procfile 以编写类似的东西;

web: /node_modules/hexo/bin/hexo server而不仅仅是web: node server.js

不幸的是,这只会导致默认的 blanco 网页... http://lmnodetest1.azurewebsites.net/

我在这里做错了什么还是我一开始就忘记了什么?

4

4 回答 4

3

以下是我在 Azure 上运行 Hexo 博客的步骤:http: //the-coderok.azurewebsites.net/2015/09/16/Running-Hexo-blog-on-Azure/

于 2015-10-16T18:45:31.220 回答
3

根据我的经验,Hexo 是一个静态博客网站生成器。您可以按照以下步骤在“公共”路径下生成网站。

$ hexo init blog
$ cd blog
$ npm install
$ hexo generate

然后,“public”目录就生成了,你可以进入这个目录并运行命令hexo server浏览浏览http://localhost:4000你的博客。

$ cd public
$ hexo server

要使用 Git 将博客部署到 Azure 网站,您只需通过git init在“公共”目录下命令来创建本地 git 存储库。

请参阅文档https://azure.microsoft.com/en-us/documentation/articles/web-sites-deploy/将其部署到 Azure。

此致。

于 2015-10-01T03:11:51.563 回答
2

在我看来,使用 hexo 最好的部分是作为静态站点生成器。这hexo server实际上是为了给您一个很好的开发环境,您可以在其中立即看到您的帖子,但是如果您要发布您的网站,您会想要提供静态生成的内容以从图片中删除节点。

Hexohexo generate可以做到这一点,如果你有一个自定义部署脚本,你可以让它与 Azure 很好地协同工作。

这是一个包含 2 个提交的 repo,您​​可以将其提交git push到一个空站点,它将创建一个有效的静态 hexo 博客:

  1. 第一次提交只是hexo init blog
  2. 第二次提交是自定义部署脚本。您希望将这 2 个文件复制到您自己的存储库中。

这是您deploy.cmd在 hexo 中需要的确切部分。

请注意,repo 中的实际脚本有更多行用于正确处理错误,但这只是您需要的要点

echo Handling Hexo deployment.

IF NOT DEFINED HEXO_PATH (
   echo Setting HEXO_PATH to %HOME%\npm_tools\hexo.cmd
   set HEXO_PATH="%HOME%\npm_tools\hexo.cmd"
)

IF NOT EXIST %HEXO_PATH% (
  echo Hexo CLI isn't installed. Running 'npm install hexo-cli -g'
  mkdir "%HOME%\npm_tools"
  npm config set prefix "%HOME%\npm_tools"
  npm install -g hexo-cli
)

echo Running 'npm install --production'
npm install --production

echo Running 'hexo generate'
%HEXO_PATH% generate

echo Copying static content to site root
"%KUDU_SYNC_CMD%" -v 50 -f "public" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd"
于 2015-09-30T22:39:01.453 回答
0

我快速浏览了您的网站。问题似乎是您有一个 server2.js 文件但没有 server.js 文件。您可以尝试在您的回购中重命名它并再次推送吗?这至少应该让你越过第一个障碍。

于 2015-09-30T21:14:21.927 回答