在Azure上部署Hexo ..不确定我缺少什么

时间:2015-09-30 20:42:59

标签: node.js git azure azure-web-sites hexo

我最近决定在Azure上创建一个供个人使用的小博客(现在)。我开始深入挖掘博客框架Hexo。现在我已经掌控了(第一个)基础知识,并在本地启动了一个Hexo博客,但我想把它推到Azure。

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

的教程
  • server.js file
  • 的package.json
  • 的.gitignore

上面会产生一个工作响应并安装了node_modules ......但是从那里我真的迷失了我的下一步......

我知道你可以创建一个package.json文件并查看我的ftp客户端,package.json就在那里,还有安装了正确模块的node_modules文件夹。我的package.json;

  

{     “名称”:“hexo-site”,     “版本”:“0.0.0”,     “私人”:是的,     “hexo”:{       “版本”:“3.1.1”     },     “依赖”:{       “表达”: ”*”,       “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”     }   }

我还发现你可以将一个Procfile部署到Azure然后使用的GIT仓库,如果你没有名为server.js的默认文件(https://github.com/yavorg/azure-node-starter/blob/master/Procfile

后来,一位朋友带着提示来编辑proc文件来编写类似的东西;

  

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

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

我在这里做错了什么,或者我在开始时忘了什么?

4 个答案:

答案 0 :(得分:3)

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

中生成网站
$ hexo init blog
$ cd blog
$ npm install
$ hexo generate

然后,"公众"生成目录,您可以进入此目录并运行命令hexo server来浏览http://localhost:4000以浏览您的博客。

$ cd public
$ hexo server

要使用Git将博客部署到Azure网站,您只需要通过命令git init在" public"创建一个本地git仓库。 DIR。

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

最诚挚的问候。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

在我看来,使用hexo的最佳部分是作为静态站点生成器。 hexo server真正意味着为您提供一个良好的开发环境,您可以立即查看自己的帖子,但如果您要发布自己的网站,则需要提供静态生成的内容以从图片中删除节点。< / p>

Hexo拥有hexo generate,如果您有自定义部署脚本,则可以使其与Azure良好协作。

Here is a repo with 2 commits你可以git push到一个空网站,它会创建一个有效的静态hexo博客:

  1. First commit只是hexo init blog
  2. 的结果
  3. Second commit是自定义部署脚本。 您想要将这两个文件复制到您自己的仓库中。
  4. 这是您在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"
    

答案 3 :(得分:0)

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