【问题标题】:Heroku: How to integrate static site generation with Python / FlaskHeroku:如何将静态站点生成与 Python / Flask 集成
【发布时间】:2020-04-20 04:06:17
【问题描述】:

我正在运行一个托管在 Heroku 上的 Flask 网站 https://www.example.org,并附有一个静态博客 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 提供静态内容的计算效率较低(这是可以接受的),但这不是目前的主要问题。

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

【问题讨论】:

    标签: python heroku flask static blogs


    【解决方案1】:

    您可以运行一个 Web 服务器(例如 nginx)来将您的流量路由到 Flask 网站或静态博客内容,而不是依赖 Flask 来提供静态博客内容。

    用户请求 -> https://example.org -> nginx -> 烧瓶

    用户请求 -> https://example.org/blog -> nginx -> 静态内容(托管在 nginx 服务器或其他位置)

    【讨论】:

    • 感谢您的建议。 Heroku 是否支持该设置?
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2020-05-28
      • 1970-01-01
      相关资源
      最近更新 更多