Heroku:如何将静态站点生成与 Python/Flask 集成

col*_*ade 5 python blogs static heroku flask

我正在运行一个https://www.example.org托管在 Heroku上的 Flask 网站,附带一个静态博客,https://www.example.org/blog我通过 Hugo 生成,我希望使这个过程更有效率

根据我的研究,出于 SEO 的原因,最好将博客放在子目录中。

我目前维护博客的工作流程如下:

  1. 用 Hugo 写 Markdown 帖子
  2. 检查以协调 Hugo 和 Flask 应用程序之间的 css 等
  3. 生成静态html代码
  4. 修复链接错误等。
  5. 将静态输出从hugo/public 文件夹移动到flask_app/static/blog 文件夹
  6. 我正在使用whitenoise访问静态文件夹
  7. 部署到 Heroku --> https://www.example.org/blog通过 Flask 提供服务

我意识到通过 Flask 提供静态内容的计算效率较低(这是可以接受的),但这现在不是主要问题。

但我确定一定有更好的方法?!

Dan*_*per 1

您可以通过添加Heroku Buildpack来自动化步骤 3 。Github 上有适用于 Hugo 的第三方开源构建包,例如roderzh/heroku-buildpack-hugo。或者,您可以在每次提交任何更改时使用Git 挂钩来构建博客。

您可以通过设置 Hugo 配置 settings 来避免步骤 4baseURLpublishDir 5

我不确定步骤 2 需要什么,但您的整体设置(6. 和 7.)似乎是合理的。