【问题标题】:Deploying Hexo on Azure.. not sure what i'm missing在 Azure 上部署 Hexo .. 不确定我缺少什么
【发布时间】:2016-08-10 01:41:28
【问题描述】:

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

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

的教程
  • server.js 文件
  • package.json
  • .gitignore

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

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

{ "name": "hexo-site", “版本”:“0.0.0”, “私人”:真的, “六边形”:{ “版本”:“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 服务器”:“^0.1.2” } }

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

后来一位朋友提出了编辑 procfile 的提示,以编写类似的内容;

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

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

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

【问题讨论】:

    标签: node.js git azure azure-web-app-service hexo


    【解决方案1】:

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

    $ 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。

    最好的问候。

    【讨论】:

    • 谢谢!我会试试这个选项!
    • @Pan,stackoverflow的初学者哈哈不知道该怎么做!现在做了
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      Hexo 对此有 hexo generate,如果你有自定义部署脚本,你可以让它与 Azure 很好地协同工作。

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

      1. First commit 只是 hexo init blog 的结果
      2. Second commit 是自定义部署脚本。 您希望将这 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"
      

      【讨论】:

      • 在 azure 上,您可以跳过全局安装 hexo-cli,因为 npm 已经在 node_modules 中安装了二进制文件 - 所以将生成命令更改为 call :ExecuteCmd node_modules/.bin/hexo generate。另外需要注意的是,您必须将应用设置中的默认根虚拟目录更改为指向 `site\wwwroot\public`,因为这是 hexo 放置静态文件的位置。
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-13
        • 1970-01-01
        • 2012-06-28
        • 1970-01-01
        • 2015-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多